2 回答
TA贡献1876条经验 获得超5个赞
MultipleSelectionModel
( link ) 扩展了SelectionModel
( link ),其中selectedItemProperty()
实现了该方法。
selectedItemProperty()
返回一个ReadOnlyObjectProperty
( link ) 实例,该实例扩展了ObservableValue
( link ),该方法来自该addListener()
实例。
至于如何调用这些方法——这就是继承的工作原理。子类 ( MultipleSelectionModel
) 继承其超类 ( ) 的所有属性SelectionModel
。因此,您定义的任何方法都SelectionModel
可以针对MultipleSelectionModel
实例进行调用。
TA贡献1993条经验 获得超5个赞
当您调用时,ListView#getSelectionModel()您将获得一个对象,该对象是 的实例SelectionModel- 更具体地说,是 的实例MultipleSelectionModel。由于您现在有了一个实例,因此MultipleSelectionModel您可以调用该类中存在的方法,包括继承的方法。这意味着您可以执行以下操作:
listView.getSelectionModel().selectedItemProperty().addListener(yourChangeListener);
这相当于以下内容:
MultipleSelectionModel<T> sModel = listView.getSelectionModel();
ReadOnlyObjectProperty<T> selectedItemProp = sModel.selectedItemProperty();
selectedItemProp.addListener(yourChangeListener);
正如您所看到的,您正在使用涉及的每个对象的类。前者称为方法链,只是简写。
添加回答
举报