2016-05-03 47 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