2

我正在使用 vaadin-spring-boot-starter 21.0.7 开发一个新应用程序,并尝试在网格中呈现训练数据库信息。我想让列表中的第一列成为活动/非活动复选框,但我不知道如何完成。我所看到的一切都是针对 Vaadin 7 或 8 的。大多数当前代码位于https://github.com/gregoryleblanc/ealOperators/tree/vaadin的 MainView.java 中

4

2 回答 2

2

您可以对 Vaadin 14 及更高版本执行此操作。我没有使用旧版本的 Vaadin 的经验。

grid.addComponentColumn(myBean -> {
  Checkbox checkbox = new Checkbox();
  checkbox.setValue(true); // this you must handle
  checkbox.addClickListener(e -> {
    // todo
  }
  return checkbox;
});

lambda 可以替换为方法引用

grid.addComponentColumn(this::createCheckboxComponent);

private Component createCheckboxComponent(MyBean myBean) {
  Checkbox checkbox = new Checkbox();
  // code here
  return checkbox;
}
于 2021-12-01T06:33:17.643 回答
0

我正在使用一些超旧版本的 vaadin,但我想同样的解决方案也应该适用于最新版本,这就是我通常的做法:

  • 类型列String
  • 列添加了ButtonRenderer( column.setRenderer) 带有事件侦听器的渲染器,它允许我处理用户的点击操作
  • 值将是一个带有 FontAwesome 字体的字符串(添加了自定义 CSS 样式font-family并在网格中配置它setCellStyleGenerator
  • 检查使用价值时String.valueOf((char) FontAwesome.CHECK_SQUARE_O.getCodepoint())
  • 未检查时的使用价值String.valueOf((char) FontAwesome.SQUARE_O.getCodepoint())

使用较新版本的 vaadin 可能有更简单的方法。但是,这种方法应该仍然有效。

于 2021-11-30T20:57:45.957 回答