java - 动态添加表格列?

标签 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 使其唯一并添加大量列?

最佳答案

TL;DR

只需将代码更改为:

count = count + 1;

说明

那是因为分配

count = count++;

不按您期望的方式工作。看一下下面的代码:

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

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

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

您可以找到更好的解释here .

关于java - 动态添加表格列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27376820/

相关文章:

css - GWT Polymer Vaadin 网格水平滚动条

java - 添加新项目后刷新下拉列表

java - JSP 不访问超过一页的静态内容

javascript - 使用 Vaadin 组件加载图像

java - 如何为我的程序生成工作 jar 文件?

java - 应用程序关闭时清理 JSF session 范围 bean

Java 到 Clojure 重写

glassfish - Servlet 异常 + 类转换异常 + Glassfish + Netbeans + JPA 实体 + Vaadin

Linux 上的 Java BlockingQueue 延迟高

java - 从数据库中检索一些特定的表