JavaFX FXML RadioButton绑定

问题描述 投票:0回答:1

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

    <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();}

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

java javafx fxml
1个回答
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()之后)并调用setModel(Model)方法来设置新控制器的模型

© www.soinside.com 2019 - 2024. All rights reserved.