java - 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请不要降低我的声誉,我对我的问题很感兴趣
解决方案
您可以在打开选项卡后清除选择:
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());
}
}
});
推荐阅读
- r - 如何在现有列名位于其所有现有值之前的数据框中创建两个新列?
- javascript - 如何将 Observable Notebook 示例翻译成 javascript?
- c# - C# - Powershell 或命令提示符的命令序列
- python - 如何有效地将多个熊猫列组合成一个类似数组的列?
- python - 我可以仅对更改的代码执行静态分析吗?
- java - 如何在 Spring-Integration 外部调用休息端点
- wordpress - 循环外的 WordPress 特色图片
- scheme - 嵌套的省略号宏在 Guile 和 Racket 中不起作用
- java - 如何使用 Spring Cloud Gateway 在 GatewayFilter 中设置请求正文
- javascript - 如何将 CSS 动画添加到 React 中特定的重新渲染项目?