我想使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
检查的原因。) >
这里有类似的问题: