【发布时间】:2015-07-08 13:14:15
【问题描述】:
我是 JavaFX 8 的新手,并尝试在我的第二列和第三列中实现带有一些 jfxtras 控件的 TreeTableView。因此,我使用自定义 TreeCells 设置了这些列的单元工厂,例如像这样:
col3.setCellFactory(new Callback<TreeTableColumn<Object, String>, TreeTableCell<Object, String>>() {
@Override
public TreeTableCell<Object, String> call(TreeTableColumn<Object, String> param) {
TreeTableCell<Object, String> cell = new TreeTableCell<Object, String>() {
private ColorPicker colorPicker = new ColorPicker();
@Override
protected void updateItem(String t, boolean bln) {
super.updateItem(t, bln);
setGraphic(colorPicker);
}
};
return cell;
}
});
现在我可以看到 ColorPickers 并且可以使用它们,但是该列对展开或折叠第 1 列的节点(显示 POJO 中的字符串信息)没有反应。所以例如如果我折叠整个树,第三列仍然显示所有颜色选择器。
那么还需要什么才能让列“同步”?
谢谢!!
【问题讨论】:
-
我不希望 JFXtras 控件具有特殊的实现以在表格中呈现。恕我直言,TreeViewTable 应该负责隐藏或显示(其内容)单元格。
-
实际上我为我的帖子选择了错误的控件 - ColorPicker 不是来自 jfxtras。但它是一样的,例如使用 LocalTimeTextField 控件。所以你的意思是 TreeTableView 只是不能处理控件?或者还有什么我可以尝试的..?
-
它可以很好地处理这个问题:问题是您告诉所有单元格(甚至是空单元格)使用控件作为其图形。仅当单元格非空时才需要专门设置图形。查看答案...
标签: java javafx treetableview jfxtras treecell