2 回答

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

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