java - 如何防止 TreeItem 选择?

标签 java treeview javafx-8

我正在使用 TreeTableView (JavaFX 8)。有一些树节点,必须禁用才能选择。我已经尝试过选择事件,但它不起作用。请找到以下代码以获取更多信息。

treeTableView.getSelectionModel().selectedItemProperty().addListener(
                (observable, oldValue, newValue) ->
    {
        // utility node
        if(newValue.getValue() instanceof UtilityRoot )
        {
            return;
        }  
    }
);

如何防止某些 TreeItems 被鼠标和键盘选中?

最佳答案

您尝试实现的目标是行不通的,因为它只是添加了一个监听器,以便在所选项目发生任何更改时得到通知,这在您的情况下已经太晚了,因为您想阻止在调用监听器之前发生的选择。

默认情况下,您可以指定是否需要 SINGLEMULTUPLE选择模式使用 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/

相关文章:

JavaFX - 将 FXML 包装到 Java 类 Controller

javascript - 单击时展开和折叠 TR 标签 - 文件夹树结构

java - 使用相对路径访问并行资源文件夹中的文本文件

java - 如何使用 JavaFX 实现多线程

java - 对 JavaFX 应用程序进行单元测试时出现“工具包未初始化”异常

java - new Date() 在配置为 IST 的 ec2 实例中给出 UTC 时间

java - 卢塞恩 : Pagination returning duplicates

java - 图像渲染在框架之外?

java - 如何取消正在运行的 AXIS 1.4 SOAP 请求?

excel - 使用列标题和子标题填充 TreeView