如何在Vaadin中显示表格?

时间:2016-05-03 20:13:47

标签: java vaadin vaadin7

我的Vaadin 7项目有两节课。我很难在主UI类中显示表格。 MyTable.java和DocUI.java。当我加载localhost:8080时,如何让我的表在DocUI.java中显示/显示?

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 = { "jacob.smith@example.com",
        "isabella.johnson@example.com", "ethan.williams@example.com",
        "emma.jones@example.com", "michael.brown@example.com" };

// 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--", "jacob.smith@example.com", "isabella.johnson@example.com","ethan.williams@example.com","emma.jones@example.com","michael.brown@example.com");

}
}

1 个答案:

答案 0 :(得分: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-Object,然后将它用于getTable并将其添加到布局中。