Получение всех выбранных кнопок переключения из одной группы - PullRequest
0 голосов
/ 27 мая 2019

У меня есть три кнопки переключения (FXML):

<ToggleButton fx:id="toggle1" text="Option 1" />
<ToggleButton fx:id="toggle2" text="Option 2" />
<ToggleButton fx:id="toggle3" text="Option 3" />

Это несколько параметров, которые пользователь может выбрать или отменить выбор. Возможен также множественный выбор.
Чтобы получить все выбранные переключатели, я поместил их в одну группу переключателей:

final ToggleGroup toggleGroup = new ToggleGroup();

toggle1.setToggleGroup(toggleGroup);
toggle2.setToggleGroup(toggleGroup);
toggle3.setToggleGroup(toggleGroup);

Но в этом случае можно выбрать только 1 кнопку за раз, а не 2 или 3.

Как получить все выбранные переключатели из одной группы? Так что, в принципе, тот же принцип, что и с флажками.

1 Ответ

2 голосов
/ 27 мая 2019

Вы можете использовать CheckBox и сделать его похожим на переключатель с помощью CSS. Чтобы получить все выбранные флажки, вы можете создать наблюдаемую коллекцию, такую ​​как ObservableSet и назначить прослушиватели флажкам, когда флажок установлен, добавьте его в коллекцию и удалите, когда он не выбран

ObservableSet<CheckBox> selectedCheckBoxes = FXCollections.observableSet();
CheckBox checkBox1 = new CheckBox();
checkBox1.selectedProperty().addListener((observable, oldValue, selectedNow) -> {
    if (selectedNow) {
        selectedCheckBoxes.add(checkBox1);
    } else {
        selectedCheckBoxes.remove(checkBox1);
    }
}); 
...