繁体   English   中英

JavaFX FXML RadioButton绑定

[英]JavaFX FXML RadioButton binding

如何将单选按钮绑定到模型类?

    <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", "");

与吸气剂和二传手

我在控制器中尝试过这样的事情

    @FXML
    private String yyy = "";
    @FXML private RadioButton f1;
    @FXML private RadioButton f2;

然后我可以得到

    if (f1.isSelected()) 
    {yyy = f1.getText();}

并将radio的值存储在String yyy中,但是如何从那里将其发送到模型中。

我不太了解您要从哪里发送什么到什么地方,但是也许可以(双向?单向?)将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() )并调用setModel(Model)设置新控制器模型的方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM