猿问

获取并记住JavaFX中选定的RadioButton

我的JavaFx应用程序中有此方法来创建RadioButton。


private HBox createModesRadios(IntegerProperty count, Mode... modes) {

    ToggleGroup group = new ToggleGroup();

    HBox result = new HBox(50);

    result.setPadding(new Insets(20, 0, 0, 0));

    result.setAlignment(Pos.CENTER);

    for (Mode mode : modes) {

        RadioButton radio = new RadioButton(mode.getText());

        radio.setToggleGroup(group);

        radio.setUserData(mode);

        result.getChildren().add(radio);


    }

    if (modes.length > 0) {

        group.selectToggle((Toggle) result.getChildren().get(0));

        count.bind(Bindings.createIntegerBinding(() -> ((Mode) group.getSelectedToggle().getUserData()).getCount(), group.selectedToggleProperty()));


        } else {

        count.set(0);

    }

    return result;

}

它initialize()通过以下方式在Controller类中的方法中调用HBox radioBox = createModesRadios(elementCount, modes);。


这是助手类模式:


public class Mode {


private final String text;

private final int count;


public Mode(String text, int count) {

    this.text = text;

    this.count = count;

}


public String getText() {

    return text;

}


public int getCount() {

    return count;

}

}

如何保存用户选择的按钮?将所选按钮String的mode.getText()方法存储在变量中会很棒。另外,我想重新设置先前选择的按钮,以便应用程序可以记住选择。


湖上湖
浏览 298回答 1
1回答

精慕HU

您可以在控制器类内的变量声明中添加以下内容: private List<RadioButton> radioButtonsList = new ArrayList<>();然后,您可以for在您提到的方法中在循环内添加类似的内容...radioButtonsList.add(radio);...之后,您可以调用所需的按钮 radioButtonList.get()
随时随地看视频慕课网APP

相关分类

Java
我要回答