要创建可观察列表,如果列表元素的属性发生更改,该列表将发送“列表更新”通知,则需要使用提取器创建列表。的
extractor是
Callback,该列表的每个元素映射到的阵列
Observable秒。如果
Observables发生任何变化,将通知在列表中注册的
InvalidationListeners和
ListChangeListeners。
所以用你的
testList()方法,你可以做
final ObservableList<TestProperty> observableList = FXCollections.observableList( new ArrayList<>(), (TestProperty tp) -> new Observable[]{tp.selectedProperty()});如果标题可以更改,并且您还希望列表在发生这种情况时接收通知,则您也可以这样做:
final ObservableList<TestProperty> observableList = FXCollections.observableList( new ArrayList<>(), (TestProperty tp) -> new Observable[]{tp.selectedProperty(), tp.titleProperty()});注意,由于提取器是一个
Callback(本质上是一个函数),因此实现可能是任意复杂的(根据另一个属性的值有条件地观察一个属性,等等)。



