动态添加表列?

时间:2014-12-09 10:35:45

标签: java vaadin

我正在寻找一种动态添加列到vaadin表的方法。

我试过了:

private Button createAddColumnButton() {
    Button addProductButton = new Button("Add column");

    addProductButton.addClickListener(new ClickListener() {

        public void buttonClick(ClickEvent event) {
            count = count++;
            table.addGeneratedColumn("Column "+count, new ColumnGenerator() {

                @Override
                public Object generateCell(final Table source, Object itemId, Object columnId) {
                    String x = "some stuff";
                    return x;
                }
            });
        }
    });
    return addProductButton;
}

此按钮允许我动态添加列,但只有一列才能收到错误消息,说我不能拥有两个具有相同ID的列。如何更改ID以使其独一无二;添加很多列?

1 个答案:

答案 0 :(得分:3)

<强> TL; DR

将代码简单地更改为:

count = count + 1;

<强> Explenation

那是因为分配

count = count++;

无法按预期方式运作。看看下面的代码:

public class HelloStackOverflow {
    public static void main(String[] args) {
        int count = 0;
        count = count++;
        System.out.println(count);
    }
}

这将在标准输出0上打印。如果将代码更改为:

,您甚至会收到警告(对变量计数的赋值无效)
count = ++count;

您可以找到更好的解释here