如何阻止TreeItem选择?

2024-04-30

我正在与一个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(使用前将#替换为@)

如何阻止TreeItem选择? 的相关文章

随机推荐