使JavaFX TreeItem无法选择但允许展开/折叠

时间:2015-11-12 14:51:46

标签: javafx treeview

我有一个JavaFX TreeView。某些节点可能无法选择。不可选择的节点可以具有可选择的子节点。

我可以使用.setDisable禁用TreeCell,然后该节点无法正确选择(通过鼠标)。但是,将单元格设置为禁用也会禁用展开/折叠箭头。奇怪的是,我仍然可以通过键盘选择和扩展/折叠。

是否可以使某些节点不可选但仍允许扩展它们?

1 个答案:

答案 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*/");
    }
}