我想将一个值绑定到ObservableList
的大小以知道它的大小并知道它是否有多个值
private ObservableList<String> strings = FXCollections.observableArrayList();
我想将一个值绑定到ObservableList
的大小以知道它的大小并知道它是否有多个值
private ObservableList<String> strings = FXCollections.observableArrayList();
它们可以与Bindings
类绑定:
ObservableList<String> strings = FXCollections.observableArrayList();
IntegerBinding sizeProperty = Bindings.size(strings);
BooleanBinding multipleElemsProperty = new BooleanBinding() {
@Override protected boolean computeValue() {
return strings.size() > 1;
}
};
接受的答案是正确的。我将为感兴趣的读者提供更多见解。
ObservableList
是一个接口,因此不具有size
属性。
是一个实现和
添加
属性ListExpression
的抽象类。此类是列表属性类的整个继承树的基类。ObservableList
ReadOnlyIntegerProperty size
ReadOnlyBooleanProperty empty
大多数用户不希望自己对树中的抽象类进行子类化,因此我们将查看提供的具体实现:
ListExpression (abstract)
- ReadOnlyListProperty (abstract)
- ListProperty (abstract)
- ListPropertyBase (abstract)
- SimpleListProperty
- ReadOnlyListWrapper
SimpleListProperty
顾名思义,它是一个简单的列表属性——一个ObservableList
包裹在Property
. 它是其他SimpleXxxProperty
s的平行线。它还有一个子类
ReadOnlyListWrapper
来处理只读和读写要求。它可以由 构造ObservableList
:
SimpleListProperty<String> list = new SimpleListProperty<>(FXCollections.observableArrayList());
IntegerProperty intProperty = new SimpleIntegerProperty();
intProperty.bind(list.sizeProperty());
需要从此类中受益(不仅仅是使用ObservableList
)并决定使用它的用户不需要静态Bindings#size
方法。