【发布时间】:2015-03-07 15:57:34
【问题描述】:
JavaFX 是一个 UI 框架。不过,我想将 JavaFX ObservableValue 用于非 UI(或至少是这样)。这是一个好主意吗?!我个人不这么认为(UI-Thread,没有并发)。
在我的项目中,观察非 UI 相关对象(后端)的属性是很常见的。我目前的解决方案是使用 EventBus 方法。这是可行的,但是当涉及到 UI 时,感觉就像是在进行数据绑定。
示例:
private void init () {
myObject.subscribe(this);
textfield.textProperty().addChangeListener( (o,l,n) -> {
myObject.setText(n);
});
}
@Handler
private void handleChangeEvent(final ChangeEvent event) {
Platform.runLater(() -> this.textfield.setText(event.getValue()));
}
当对象由 ListView 的选定项检索时,此示例变得相当复杂。
我想要什么:
private void init () {
myObject.textProperty().bindBidirectional(textfield.textProperty());
}
【问题讨论】: