我正在与一个TreeTableView
(JavaFX 8
)。有一些树节点必须禁用才能选择。我已经尝试过选择活动,但它不起作用。请查找以下代码以获取更多信息。
treeTableView.getSelectionModel().selectedItemProperty().addListener(
(observable, oldValue, newValue) ->
{
// utility node
if(newValue.getValue() instanceof UtilityRoot )
{
return;
}
}
);
我怎样才能防止一些TreeItems
从任何鼠标和键盘选择?
您尝试实现的目标无法实现,因为它只是添加一个侦听器,以便在所选项目发生更改时收到通知,这在您的情况下已经太晚了,因为您想阻止在调用侦听器之前发生选择。
默认情况下,您可以指定是否需要SINGLE
or MULTUPLE
选择模式使用treeTableView.getSelectionModel().setSelectionMode(selectionMode)
如果你想允许使用单元格选择treeeTableView.getSelectionModel().setCellSelectionEnabled(enabled)
.
-
SelectionMode.SINGLE
和细胞选择enabled
:允许选择表中的单个单元格。
-
SelectionMode.SINGLE
和细胞选择disabled
:允许选择表中的单行。
-
SelectionMode. MULTUPLE
和细胞选择enabled
:允许选择多行中的多个单元格。
-
SelectionMode. MULTUPLE
和细胞选择disabled
:允许选择表中的多行。
如果它对您来说不够好,您将需要实现自己的TreeTableViewSelectionModel https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/TreeTableView.TreeTableViewSelectionModel.html并使用设置它setSelectionModel(TreeTableView.TreeTableViewSelectionModel<S> value) https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/TreeTableView.html#setSelectionModel-javafx.scene.control.TreeTableView.TreeTableViewSelectionModel-.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)