У меня есть этот метод в моем приложении JavaFx для создания RadioButton
s.
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()
для выбранной кнопки. Также я хотел бы вернуть назад ранее выбранную кнопку, чтобы приложение могло запомнить выбор.