table.addItem没有将值添加到我的表中

时间:2011-06-01 14:41:09

标签: vaadin

当我手动添加table.addContainerProperty(所有这些)时,它会起作用,添加我要求的所有项目。

当我使用for来创建table.addContainerProperty时,我无法使用我的按钮添加值,或者使用for来添加我的所有值。

为什么呢?我在任何地方都找不到......

package br.com.Metrics;

import com.vaadin.Application; import
com.vaadin.ui.Button; import
com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Table; import
com.vaadin.ui.Window;

import br.com.cflex.table.*;

/**  * The Application's "main" class 
*/ @SuppressWarnings("serial") public class MyVaadinApplication extends Application {
    private Window window;
    private Table table;

    @Override
    public void init()
    {
        window = new Window("My Vaadin Application");

        table = new Table("Teste de tabela");
        table.addItem();
        table.addContainerProperty("Nome", String.class, null);

        for(int i=0; i<10;i++){
            table.addContainerProperty(i,Integer.class, null);
            table.addItem(new Object[] {"2",new Integer(159),new Integer(1473)}, null);
        }

        for(int i=0; i<10; i++){
            table.addItem(new Object[] {"3",new Integer(159),new Integer(1473)}, null);
        }

        table.addItem(new Object[] {"4",new Integer(159),new Integer(1473)}, null);

        Button button = new Button("Press Me !");
        button.addListener(new Button.ClickListener() {
            public void buttonClick(ClickEvent event) {     
             table.addItem(new Object[] {"Nicolaus",new Integer(159),new Integer(1473)}, null);
            }
        });
        window.addComponent(table);
        window.addComponent(button);        
        setMainWindow(window);
    }
  }

1 个答案:

答案 0 :(得分:3)

我发现了为什么......

使用.addItem在表格中插入数据时,必须为此方法提供的数组必须与表格列具有完全相同的数量。

否则它不会添加或告诉你。