JavaFX:ListProperty和成员通知

时间:2017-02-11 21:30:13

标签: javafx binding javafx-8 listproperty

考虑Wrapper类的实例。 Wrapper类包含ListPropertyClassA个实例和ListPropertyClassB个实例。

public class Wrapper {
    private ListProperty<ClassA> aClasses;
    private ListProperty<ClassB> bClasses;

    public ListProperty<ClassA> aClassesProperty() { return aClasses; }
    public ListProperty<ClassB> bClassesProperty() { return bClasses; }

    // Methods…
}

ClassAClassB的实例需要知道它们是否包含在某些Wrapper中。它们可能只包含在一个Wrapper中或根本不包括在内。

public class ClassA { // Similarly ClassB
    private Wrapper owner;
}

Wrapper的某些方法可能会从ListProperties之一中删除成员。我想知道 JavaFX 是否有自动机制通知 ListProperty 已删除的成员ListProperty Wrapperowner ClassA / ClassB之间的某种约束机制?

1 个答案:

答案 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

了解更多https://docs.oracle.com/javase/8/javafx/api/javafx/collections/ObservableList.html
相关问题