我正在尝试将int
对象绑定到javaFX中的Label
,我不想将模型中的类型更改为IntegerProperty
。我试过
mainActionLabel.setText(myintvar);
mainActionLabel.textProperty().bind(new SimpleIntegerProperty(myintvar.asString());
但是只有当我关闭并再次打开gui时,值才会更新,所以我想绑定不是真的正在工作,因为我想它用setText方法更新。
有没有其他方法可以正确绑定它?
编辑:我刚尝试删除
mainActionLabel.setText(myintvar);
行,但问题仍然存在:正确初始化,但不实时更新。只有当我关闭窗口并重新打开它时。
答案 0 :(得分:5)
IntegerProperty
使用asString
:
IntegerProperty property = new SimpleIntegerProperty();
Button btn = new Button("increment");
btn.setOnAction((ActionEvent event) -> {
property.set(property.get()+1);
});
Label label = new Label();
label.textProperty().bind(property.asString());
答案 1 :(得分:1)
如果您不愿意将模型数据更改为IntegerProperty,则无法利用属性绑定。
您必须使用listeners以及模型的getter和setter自行实现同步。