我想使用FX8 Spinner控件,但我想将源绑定到IntegerProperty
int MIN = 0;
int MAX = 5000;
int STEP = 500;
IntegerProperty integerProperty = new SimpleIntegerProperty();
Spinner<Integer> spinner = new Spinner<>(MIN, MAX, STEP);
Run Code Online (Sandbox Code Playgroud)
我知道绑定是通过绑定到valuePropertyValue Factory中设置的.然而,这种希望Property<Integer>,我无法找到一个方法来之间进行转换IntegerProperty和Property<Integer>.
显然下面会生成一个编译器错误:
spinner.getValueFactory().valueProperty().bindBidirectional(integerProperty);
Run Code Online (Sandbox Code Playgroud)
我是否需要为两个方向手动分配更改侦听器?当然有一个更简洁的解决方案使用valueProperty,这不可能是一个无法预料的情况.
您可以包装ObjectProperty:
ObjectProperty<Integer> objectProp = new SimpleObjectProperty<>(MIN);
IntegerProperty integerProperty = IntegerProperty.integerProperty(objectProp);
Spinner<Integer> spinner = new Spinner<>(MIN, MAX, STEP);
spinner.getValueFactory().valueProperty().bindBidirectional(objectProp);
Run Code Online (Sandbox Code Playgroud)
IntegerProperty.integerProperty创建一个双向连接到它包装的属性的属性.
| 归档时间: |
|
| 查看次数: |
2065 次 |
| 最近记录: |