2016-05-03 88 views
0

我在Vaadin 7項目中有兩堂課。我很難在我的主UI類中顯示錶格。 MyTable.java和DocUI.java。當我加載localhost:8080時,如何讓我的表在DocUI.java中顯示/顯示?如何在Vaadin中顯示錶格?

public class MyTable extends DocUI{ 

public MyTable() { 

    Table table = new Table("The Brightest Stars"); 

    table.addContainerProperty("Name", String.class, null); 
    table.addContainerProperty("Mag", Float.class, null); 

    Object newItemId = table.addItem(); 
    Item row1 = table.getItem(newItemId); 
    row1.getItemProperty("Name").setValue("Sirius"); 
    row1.getItemProperty("Mag").setValue(-1.46f); 

    table.addItem(new Object[] {"Canopus", -0.72f}, 2); 
    table.addItem(new Object[] {"Arcturus", -0.04f}, 3); 
    table.addItem(new Object[] {"Alpha Centauri", -0.04f}, 4); 

    table.setPageLength(table.size()); 
    } 
} 



public class DocUI extends UI { 

// new addition 4/28 
public String[] userString = { "[email protected]", 
     "[email protected]", "[email protected]", 
     "[email protected]", "[email protected]" }; 

// create combo box 
public ComboBox comboBox1 = new ComboBox("Random Combo Box") { 

}; 

@WebServlet(value = "/*", asyncSupported = true) 
@VaadinServletConfiguration(productionMode = false, ui = DocUI.class) 
public static class Servlet extends VaadinServlet { 
} 

@Override 
protected void init(VaadinRequest request) { 

    final VerticalLayout layout = new VerticalLayout(); 

    layout.setMargin(true); 

    setContent(layout); 

    Button button = new Button("Click Me"); 
    Button button2 = new Button("I am button 2"); 

    button.addClickListener(new Button.ClickListener() { 
     public void buttonClick(ClickEvent event) { 
      layout.addComponent(new Label("Thank you for clicking")); 
     } 
    }); 

    @SuppressWarnings("deprecation") 
    FieldGroup form = new FieldGroup(); 
    layout.setSizeFull(); 
    layout.addComponent(button); 
    layout.addComponent(button2); 
    addComponent(MyTable.table); 


    //new addition 4/28 

    layout.addComponent(comboBox1);  
    comboBox1.setInputPrompt("Select a value");   
    comboBox1.addItems("--add new user--", "[email protected]", "[email protected]","[email protected]","[email protected]","[email protected]"); 

} 
} 

回答

1

你知道Java嗎? 不要從MyTable中的UI擴展。

public class MyTable{ 

private Table table; 

    public MyTable() { 

    this.table = new Table("The Brightest Stars"); 
    /* do something with table */ 
    } 

public function getTable() { 
    return this.table; 
} 
} 

知道你可以創建一個MyTable對象,然後用它來getTable並將其添加到佈局。

+0

我是Java新手。我已將您的代碼添加到MyTable.java類,並且無法識別函數。 「函數無法解析爲類型」 – PeachesToad

+0

首先你必須學習java。 MyTable-Method是構造函數,getTable是屬性表的Getter。我不想提供現成的和經過驗證的代碼。你必須帶上自己的知識。 試試吧,我會盡力幫助你;) – Dominik