首页 > 解决方案 > JavaFX 在 TreeView 上取消选择项目

问题描述

我有一个 TreeView,当我选择一个项目时,会打开一个带有相应信息的选项卡。但是当我关闭选项卡并尝试打开它时,它不会出现,因为该项目已被选中。我需要先选择另一个,然后再次单击它。

我用这个。

fileView.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
    if (newValue == null)
        return;
    System.out.println("Selected File : " + newValue.getValue().getAbsolutePath());
    if (newValue.getValue().isFile()) {
        ...
    }
});

我看到了2个问题的解决方案。

1)从项目中删除选择标签

2)更换监听器

但我没有成功。我会很高兴您的解决方案。请提供代码片段,例如

Ps请不要降低我的声誉,我对我的问题很感兴趣

标签: javajavafxtreeview

解决方案


您可以在打开选项卡后清除选择:

fileView.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
    if (newValue != null) {
        System.out.println("Selected File : " + newValue.getValue().getAbsolutePath());
        if (newValue.getValue().isFile()) {
            // Open a tab here...

            /* Clear selection */
            Platform.runLater(() -> fileView.getSelectionModel().clearSelection());
        }
    }
});

推荐阅读