2 回答

TA貢獻1876條經驗 獲得超5個贊
MultipleSelectionModel
(?link?) 擴展了SelectionModel
(?link?),其中selectedItemProperty()
實現了該方法。
selectedItemProperty()
返回一個ReadOnlyObjectProperty
(?link?) 實例,該實例擴展了ObservableValue
(?link?),該方法來自該addListener()
實例。
至于如何調用這些方法——這就是繼承的工作原理。子類 (?MultipleSelectionModel
) 繼承其超類 ( ) 的所有屬性SelectionModel
。因此,您定義的任何方法都SelectionModel
可以針對MultipleSelectionModel
實例進行調用。

TA貢獻1993條經驗 獲得超6個贊
當您調用時,ListView#getSelectionModel()您將獲得一個對象,該對象是 的實例SelectionModel- 更具體地說,是 的實例MultipleSelectionModel。由于您現在有了一個實例,因此MultipleSelectionModel您可以調用該類中存在的方法,包括繼承的方法。這意味著您可以執行以下操作:
listView.getSelectionModel().selectedItemProperty().addListener(yourChangeListener);
這相當于以下內容:
MultipleSelectionModel<T> sModel = listView.getSelectionModel();
ReadOnlyObjectProperty<T> selectedItemProp = sModel.selectedItemProperty();
selectedItemProp.addListener(yourChangeListener);
正如您所看到的,您正在使用涉及的每個對象的類。前者稱為方法鏈,只是簡寫。
添加回答
舉報