如何将值绑定到 ObservableList 的大小?
How to bind a value to an ObservableList's size?
我想将一个值绑定到 ObservableList
的大小以了解其大小并了解它是否具有多个值
private ObservableList<String> strings = FXCollections.observableArrayList();
它们可以与 Bindings
class:
绑定
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
的抽象 class
和
ReadOnlyBooleanProperty empty
特性。此 class 是列表属性 classes.
的整个继承树的基础 class
大多数用户不想子class树中的抽象classes,所以我们将看看提供的具体实现:
ListExpression (abstract)
- ReadOnlyListProperty (abstract)
- ListProperty (abstract)
- ListPropertyBase (abstract)
- SimpleListProperty
- ReadOnlyListWrapper
SimpleListProperty
顾名思义,它是一个简单的列表 属性 - ObservableList
包裹在 Property
中。它与其他 SimpleXxxProperty
平行。它还有一个子class
ReadOnlyListWrapper
处理 read-only 和 read-and-write 要求。它可以从 ObservableList
:
构造
SimpleListProperty<String> list = new SimpleListProperty<>(FXCollections.observableArrayList());
IntegerProperty intProperty = new SimpleIntegerProperty();
intProperty.bind(list.sizeProperty());
需要从这个 class 中获益(而不是仅仅使用 ObservableList
)并决定使用它的用户不需要静态 Bindings#size
方法。
我想将一个值绑定到 ObservableList
的大小以了解其大小并了解它是否具有多个值
private ObservableList<String> strings = FXCollections.observableArrayList();
它们可以与 Bindings
class:
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
的抽象 class
和
ReadOnlyBooleanProperty empty
特性。此 class 是列表属性 classes.
大多数用户不想子class树中的抽象classes,所以我们将看看提供的具体实现:
ListExpression (abstract)
- ReadOnlyListProperty (abstract)
- ListProperty (abstract)
- ListPropertyBase (abstract)
- SimpleListProperty
- ReadOnlyListWrapper
SimpleListProperty
顾名思义,它是一个简单的列表 属性 - ObservableList
包裹在 Property
中。它与其他 SimpleXxxProperty
平行。它还有一个子class
ReadOnlyListWrapper
处理 read-only 和 read-and-write 要求。它可以从 ObservableList
:
SimpleListProperty<String> list = new SimpleListProperty<>(FXCollections.observableArrayList());
IntegerProperty intProperty = new SimpleIntegerProperty();
intProperty.bind(list.sizeProperty());
需要从这个 class 中获益(而不是仅仅使用 ObservableList
)并决定使用它的用户不需要静态 Bindings#size
方法。