我有一个JavaFX TreeView。某些节点可能无法选择。不可选择的节点可以具有可选择的子节点。
我可以使用.setDisable禁用TreeCell,然后该节点无法正确选择(通过鼠标)。但是,将单元格设置为禁用也会禁用展开/折叠箭头。奇怪的是,我仍然可以通过键盘选择和扩展/折叠。
是否可以使某些节点不可选但仍允许扩展它们?
答案 0 :(得分:0)
使用CSS可以解决这个问题:
定义树和节点后 - 在树视图上设置根
TreeItem<String> root = new TreeItem<String>("NAME_OF_YOUR_ROOT");
treeView.setRoot(root);
在树视图中添加一个监听器
treeView.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) ->
handleTreeCellSelction(newValue));
handleTreeCellSelction方法将确保
private void handleTreeCellSelction(TreeItem<String> newValue)
{
String nameOfTreeItem = newValue.getValue();
if(nameOfTreeItem.equals("NAME_OF_YOUR_ROOT"))
{
newValue.setStyle("/*ALL the css styles to make it look its not selected*/");
}
}