我正在使用TreeTableView
(JavaFX 8
)。有一些树节点,必须禁用它们才能进行选择。我曾尝试过选择事件,但它不起作用。有关详细信息,请参阅以下代码。
treeTableView.getSelectionModel().selectedItemProperty().addListener(
(observable, oldValue, newValue) ->
{
// utility node
if(newValue.getValue() instanceof UtilityRoot )
{
return;
}
}
);
如何阻止某些鼠标和键盘选择TreeItems
?
答案 0 :(得分:1)
您尝试实现的功能无法正常工作,因为它只是添加一个侦听器,以便在您选择的项目发生更改时通知您已经太晚了,因为您希望阻止在调用侦听器之前进行的选择。
默认情况下,您可以使用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)
进行设置。