首页 文章

JavaFX表视图CellValueFactory

提问于
浏览
0

我遇到了一个奇怪的问题,我似乎无法修复 . 我正在制作一个表格视图,其中一列中有一个复选框 .

虽然我正在尝试将更改侦听器添加到 CheckBoxTableCell 但没有任何运气 .

如果我这样做:

final CheckBoxTableCell<Plugin, Boolean> ctCell = new CheckBoxTableCell<>();
        enabled.setCellFactory(p -> ctCell);

桌面视图上的复选框根本不显示 .

但如果我这样做:

enabled.setCellFactory(p -> new CheckBoxTableCell<>());

复选框显示正常?为什么第二个显示复选框但第一个不显示?请帮忙!

1 回答

  • 2

    在第一种情况下,您创建一个对象并多次传递它 . 根据JavaFX场景图文档,节点只能附加到单个父节点,父节点不能有重复的子节点 .

    在第二种情况下,每次填充单元格时都会创建一个新对象 . 这是应该做的,因为该方法需要一个工厂,换句话说,一个对象每次调用都会产生一个新对象 .

相关问题