【发布时间】:2017-04-23 09:06:17
【问题描述】:
我对 javaFX 中的侦听器有点困惑。
我有一个实现 Observable 的类(我们称之为 ObservedContainer),其中包含一些也是 Observables 的对象的列表:
public class ObservedContainer implements Observable {
ArrayList<AnotherObservableClass> someOtherClasses;
(...observable implementation omitted for brevity)
}
当我从数组中添加或删除某些内容时,我可以使类无效 - 没关系:
public class ObservedContainer implements Observable {
ArrayList<AnotherObservableClass> someOtherClasses = new ArrayList<>();
(...observable implementation omitted for brevity)
public void addAnotherObservableClass(AnotherObservableClass a){
someOtherClasses.add(a);
fireInvalidationEvent();
// This just notifies all listeners that the object has changed
}
public void removeAnotherObservableClass(AnotherObservableClass a){
someOtherClasses.remove(a);
fireInvalidationEvent();
}
}
但是当数组中的对象被修改时,我如何让它触发失效事件呢? ObservedContainer 对象是否应该订阅每个 AnotherObservableClass 对象的侦听器,并对此做出反应?
谢谢!
【问题讨论】: