如何防止TreeItem选择?

时间:2016-09-23 10:21:26

标签: java treeview javafx-8

我正在使用TreeTableViewJavaFX 8)。有一些树节点,必须禁用它们才能进行选择。我曾尝试过选择事件,但它不起作用。有关详细信息,请参阅以下代码。

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

如何阻止某些鼠标和键盘选择TreeItems

1 个答案:

答案 0 :(得分:1)

您尝试实现的功能无法正常工作,因为它只是添加一个侦听器,以便在您选择的项目发生更改时通知您已经太晚了,因为您希望阻止在调用侦听器之前进行的选择。

默认情况下,您可以使用SINGLE指定是否需要MULTUPLEtreeTableView.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)进行设置。