【发布时间】:2023-03-24 00:30:01
【问题描述】:
我需要从包含自动生成的 jooq 记录的 Vaadin 网格中添加/删除/自定义列。
BeanItemContainer<MyJooqRecord> beanItemContainer;
beanItemContainer = DBUtil.getAll();
Grid grid = new Grid();
grid.setContainerDataSource(beanItemContainer);
现在我喜欢(例如)添加一个按钮。
grid.addColumn("Action", Button.class).setRenderer(
new ButtonRenderer(new RendererClickListener() {
@Override
public void click(RendererClickEvent event) {
//code ...
}
}
));
结果:
2016-11-30 10:39:17,950 [http-nio-8080-exec-2] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] [DirectJDKLog.java:181] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [com.vaadin.server.ServiceException: java.lang.IllegalStateException: Container for this Grid is not a default container from Grid() constructor] with root cause
java.lang.IllegalStateException:此 Grid 的容器不是 Grid() 构造函数的默认容器
使用 Vaadin Tables 就可以正常工作。但是看了this之后我喜欢用Grids
出现这种情况的原因我找到了here
如何用我找到的简单 Beans 编写容器 here
如何使用 jooq 记录实现这一目标?
请给点建议
Java 1.7 - Vaadin 7.7.3
【问题讨论】: