这是这种情况:我正在使用JavaFX TreeView
并选择项目,然后让所选择的项目做其他事情,我编写了自己的侦听器作为实现ChangeListener
接口的内部类。 / p>
generalTree
是我的TreeView
,其中包含要选择的元素。目前,代码处于测试模式,稍后我将使用这些值在中央窗格中切换内容。
generalTree.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<TreeItem<String>>() {
@Override
public void changed(ObservableValue<? extends TreeItem<String>> v, TreeItem<String> oldValue,
TreeItem<String> newValue) {
TreeItem<String> selectedItem = generalTree.getSelectionModel().getSelectedItem();
System.out.println(selectedItem.toString());
如果我没有在代码中显式使用oldValue
和newValue
参数,我不明白为什么此代码会起作用。 ObservableValue
的全部工作吗?
在此期间,我正在研究“并行和分布式编程”,因此我正在学习观察者,但是我需要大量练习。