考虑Wrapper
类的实例。 Wrapper
类包含ListProperty
个ClassA
个实例和ListProperty
个ClassB
个实例。
public class Wrapper {
private ListProperty<ClassA> aClasses;
private ListProperty<ClassB> bClasses;
public ListProperty<ClassA> aClassesProperty() { return aClasses; }
public ListProperty<ClassB> bClassesProperty() { return bClasses; }
// Methods…
}
ClassA
和ClassB
的实例需要知道它们是否包含在某些Wrapper
中。它们可能只包含在一个Wrapper
中或根本不包括在内。
public class ClassA { // Similarly ClassB
private Wrapper owner;
}
Wrapper
的某些方法可能会从ListProperties之一中删除成员。我想知道 JavaFX 是否有自动机制通知 ListProperty 已删除的成员? ListProperty
Wrapper
和owner
ClassA
/ ClassB
之间的某种约束机制?
答案 0 :(得分:0)
如果你在Wrapper class
:
aClasses.getValue().addListener(
(ListChangeListener<ClassA>)event-> {
if (event.next()) {
if (event.wasAdded()) {
} else if (event.wasRemoved()) {
}
}
}
);
如果您在owner.aClassesProperty().getValue().addListener(
ClassA/B
但是对于JavaFX,有FXCollections.observableList()
专门用于列表上的监听器,在半页和https://docs.oracle.com/javafx/2/collections/jfxpub-collections.htm