JavaFX 取消选择 TreeView 上的项目
JavaFX Unselect item on TreeView
我有一个 TreeView,当我 select 一个项目时,会打开一个包含相应信息的选项卡。
但是当我关闭选项卡并尝试打开它时,它没有出现,因为该项目已经 selected。我需要先select另一个,然后再点击它。
我用这个
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) 从项目
中删除 selection 标签
2) 替换监听器
但是我没有成功。
我很乐意为您提供解决方案。
请提供代码片段,例如
P.s。请不要降低我的声誉,我对我的问题很感兴趣
您可以在打开标签后清除选择:
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());
}
}
});
我有一个 TreeView,当我 select 一个项目时,会打开一个包含相应信息的选项卡。 但是当我关闭选项卡并尝试打开它时,它没有出现,因为该项目已经 selected。我需要先select另一个,然后再点击它。
我用这个
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) 从项目
中删除 selection 标签2) 替换监听器
但是我没有成功。 我很乐意为您提供解决方案。 请提供代码片段,例如
P.s。请不要降低我的声誉,我对我的问题很感兴趣
您可以在打开标签后清除选择:
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());
}
}
});