在JavaFX TreeView中,是否存在类似于“BeforeTreeItemSelectionChanged”的事件?我想在点击一个新的TreeItem之前在旧的TreeItem上保存一些设置。感谢。
答案 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());
}
});