如何将单选按钮绑定到模型类?
<fx:define>
<ToggleGroup fx:id="xxx" />
</fx:define>
<children>
<RadioButton text="one" toggleGroup="$xxx" fx:id="f1"/>
<RadioButton text="two" toggleGroup="$xxx" fx:id="f2"/>
</children>
`
模型:
private final StringProperty yyy = new SimpleStringProperty(this, "yyy", "");
使用getter和setter
我在控制器中试过这样的东西
@FXML
private String yyy = "";
@FXML private RadioButton f1;
@FXML private RadioButton f2;
然后我可以得到
if (f1.isSelected())
{yyy = f1.getText();}
并将字符串的值存储在字符串yyy中,但如何将其从那里发送到模型..
答案 0 :(得分:0)
我不太明白你想从哪里发送到哪里,但可能是你可以(双向?单向?)绑定yyy
到RadioButton.textProperty()
?或者只是使用RadioButton.setText(String)
方法。
请看这里https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/Labeled.html#textProperty--
- OP评论后更新 -
将类Model的对象作为控制器中的字段怎么样?类似的东西:
class Model {
private StringProperty yyy; // with getters and setters
}
class Controller {
private Model model;
[...]
private void onButtonClicked() {
if (f1.isSelected()) {
model.setYyy(f1.getText())
}
}
}
如果必须在不同控制器之间共享相同的模型对象,则可以通过FXMLLoader访问视图的控制器(使用方法FXMLLoader.getController()
(在调用FXMLLoader.load()
之后)并调用{ {1}}设置新控制器模型的方法