【发布时间】:2013-11-10 13:28:10
【问题描述】:
我有一个名为 score 的变量 ObservableIntegerValue 。 我想为其创建一个侦听器以侦听其值的变化,并根据该变化在我的窗格上显示 javafx 标签文本。 但是在方法initialize()中,我需要实例化并给它500的初始值,比如说。 怎么可能做到?
【问题讨论】:
标签: javafx instantiation observable
我有一个名为 score 的变量 ObservableIntegerValue 。 我想为其创建一个侦听器以侦听其值的变化,并根据该变化在我的窗格上显示 javafx 标签文本。 但是在方法initialize()中,我需要实例化并给它500的初始值,比如说。 怎么可能做到?
【问题讨论】:
标签: javafx instantiation observable
除了可观察值之外,要使score 变量也可绑定,您可以使用IntegerProperty 代替ObservableIntegerValue。 IntegerProperty 是一个IntegerExpression,所以它也实现了 ObservableIntegerValue 接口,这里是 IntegerExpression,
IntegerExpression 是 ObservableIntegerValue 加上额外的 以流畅的样式生成绑定的便捷方法。
IntegerProperty score = new SimpleIntegerProperty(500);
Text text = new Text("-");
// Bind score to text, to show on scene.
text.textProperty().bind(score.asString());
score.set(700); // new value
和听者
score.addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
// value changed
}
});
【讨论】: