如何使某些JavaFX TreeView节点不可选择?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使某些JavaFX TreeView节点不可选择?相关的知识,希望对你有一定的参考价值。

我想使JavaFX TreeView中的“文件夹”节点可扩展和可折叠,但不可选择

我找到了this discussion并调查了EventFilter,但似乎没有任何与EventType选择更改相对应的TreeView。第二个建议是定制选择模型,这听起来像是对我的深入了解。因此,我是否坚持允许选择事件触发我的侦听器,然后对其中的垃圾进行分类?

答案

这有点hacky,但是我最终还是这样:

table.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> 
    if (newValue != null && !newValue.isLeaf()) 
        Platform.runLater(() -> table.getSelectionModel().clearSelection());
    
);

对我来说,单击非叶节点时只需清除选择就足够了。但是,重新选择oldValue参数并不难,但要知道这会再次触发更改事件(clearSelection调用也是如此,这就是为什么需要newValue != null检查的原因。) >

另一答案

这里有类似的问题:

以上是关于如何使某些JavaFX TreeView节点不可选择?的主要内容,如果未能解决你的问题,请参考以下文章

JavaFX TreeView:删除展开/折叠按钮(披露节点)和功能

JavaFX仅扩展包含特定Child的TreeView父级

C# winform treeview 节点展开状态的图标设置

.net中如何使treeview只让选中节点展开,其它节点收缩

如何使WPF的TreeView节点之间有连线

C#中treeview控件中,如何使第一个节点默认选中高亮?