我正在使用 TreeTableView
(JavaFX 8
)。有一些树节点,必须禁用才能选择。我已经尝试过选择事件,但它不起作用。请找到以下代码以获取更多信息。
treeTableView.getSelectionModel().selectedItemProperty().addListener(
(observable, oldValue, newValue) ->
{
// utility node
if(newValue.getValue() instanceof UtilityRoot )
{
return;
}
}
);
如何防止某些 TreeItems
被鼠标和键盘选中?
最佳答案
您尝试实现的目标是行不通的,因为它只是添加了一个监听器,以便在所选项目发生任何更改时得到通知,这在您的情况下已经太晚了,因为您想阻止在调用监听器之前发生的选择。
默认情况下,您可以指定是否需要 SINGLE
或 MULTUPLE
选择模式使用 treeTableView.getSelectionModel().setSelectionMode(selectionMode)
如果你想允许使用 treeeTableView.getSelectionModel().setCellSelectionEnabled(enabled)
选择单元格.
-
SelectionMode.SINGLE
和细胞选择enabled
: 允许选择表格中的单个单元格。 -
SelectionMode.SINGLE
和细胞选择disabled
: 允许选择表格中的单行。 -
SelectionMode. MULTUPLE
和细胞选择enabled
: 允许选择多行中的多个单元格。 -
SelectionMode. MULTUPLE
和细胞选择disabled
: 可以选择表格中的多行。
如果它对你来说不够好,你需要自己实现 TreeTableViewSelectionModel
并使用 setSelectionModel(TreeTableView.TreeTableViewSelectionModel<S> value)
进行设置.
关于java - 如何防止 TreeItem 选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39658392/