JavaFX中的侦听器有效,但我不知道为什么

时间:2018-08-10 10:15:38

标签: javafx treeview observable changelistener interface-implementation

这是这种情况:我正在使用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());

如果我没有在代码中显式使用oldValuenewValue参数,我不明白为什么此代码会起作用。 ObservableValue的全部工作吗? 在此期间,我正在研究“并行和分布式编程”,因此我正在学习观察者,但是我需要大量练习。

0 个答案:

没有答案