【发布时间】:2013-01-02 23:55:12
【问题描述】:
如何在 javafx 2.0 及更高版本中将Integer 转换为ObservableValue<Integer>?
【问题讨论】:
如何在 javafx 2.0 及更高版本中将Integer 转换为ObservableValue<Integer>?
【问题讨论】:
我们使用ReadOnlyObjectWrapper<>(*integer value*); 并将值存储在ObservableValue<Integer> 引用中。
ObservableValue<Integer> obsInt = new ReadOnlyObjectWrapper<>(intValue);
更新
启动 JavaFX 8,您还可以执行以下操作:
ObservableValue<Integer> obsInt = new SimpleIntegerProperty(intValue).asObject();
【讨论】:
另一种方式。
new SimpleIntegerProperty(integer_value).asObject()
【讨论】:
#asObject() 在 JavaFX 8 中添加
Integer(对象)而不是原始int(可能允许空引用),你必须使用ReadOnlyObjectWrapper<Integer>而不是@ 987654326@
如果您使用 tableview,请执行以下操作: 只需将整数更改为数字
@FXML
private TableColumn<Sockets,Number> key;
...
key.setCellValueFactory(cellData -> cellData.getValue().socketIdProperty());
【讨论】:
IntegerProperty 实现 ObservableValue<Number> 而不是 ObservableValue<Integer>。所以你应该这样做:
// Here Person is a class and age is a variable of type IntegerProperty
ObservableValue<Number> ob = Person.age;
【讨论】: