JavaFX TreeView中的BeforeTreeItemSelectionChanged事件?

时间:2016-06-27 09:30:27

标签: java javafx treeview

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

1 个答案:

答案 0 :(得分:3)

如果您只想引用之前选择的项目,可以添加ChangeListener来收听TreeView选择模型selectedItemProperty的更改,因为它& #39; s 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());
    }
});