java - JavaFX TreeView 中的 BeforeTreeItemSelectionChanged 事件?

标签 java javafx treeview

在JavaFX TreeView中,是否有类似“BeforeTreeItemSelectionChanged”的事件?在单击新的 TreeItem 之前,我想在旧的 TreeItem 上保存一些设置。谢谢。

最佳答案

如果您只想引用之前选择的项目,您可以添加 ChangeListener 聆听 selectedItemProperty 的变化TreeView的选择模型因为它是 changed 方法为您传递以前的值:

changed(ObservableValue<? extends T> observable, T oldValue, T newValue)

此示例在选择时打印先前选择的项目的值:

treeView.getSelectionModel().selectedItemProperty().addListener((obs, oldVal, newVal) -> {
    if(oldVal != null)
        System.out.println(oldVal.getValue());
});

这是相同的,但是使用匿名类来查看类型:

treeView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<TreeItem<String>>() {
    @Override
    public void changed(ObservableValue<? extends TreeItem<String>> observable, TreeItem<String> oldValue, TreeItem<String> newValue) {
        if(oldValue != null)
            System.out.println(oldValue.getValue());
    }
});

关于java - JavaFX TreeView 中的 BeforeTreeItemSelectionChanged 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38050369/

相关文章:

java - 在android中使用Pattern从标准文本中获取一些字符串

JavaFX:用线程移动一个圆圈

java - 为什么我的 .java 文件禁用错误检查?

java - 访问自定义 FXML 组件初始化中的子组件

css - 如何用CSS去掉折线图中的轴线?

c# - 删除选中的父节点和子节点——集合被修改;枚举操作可能无法执行

java - java.util.stream.Stream<T>.sorted() 的大 O 复杂度

javafx - 在javafx中向场景添加多个三角形网格的问题

c# XML Treeview (Plumbing) 收藏

Java Swing : how to reflect changes made to xml file immediately to visual tree?