У меня есть 3 ToggleButtons и GridPane, содержащий 3 ячейки.Как сделать эту привязку JavaFX умнее?
Дело 1: Только 1 ToggleButton выбрано, ожидается, что ячейка GridPane заполнит всю панель.
Случай 2: 2 из ToggleButtons выбраны, соответствующие 2 GridPane клетки, как ожидается, чтобы заполнить всю область с одинаково. (И та же логика, когда выбрано 3 ToggleButtons.)
В настоящее время я уже достиг своей цели с помощью следующей реализации, но то, что я хочу узнать, делает это умнее. Со словом smarter
я подразумеваю реализацию чего-то более короткого, которое преобразует состояние ToggleButton в двойное значение (отменено => 0, выбрано => 100). Я не хочу реализовывать их, повторяя if clauses, но я пытаюсь реализовать что-то, что можно подключить до вызова .bind().
Текущая реализация для одного ToggleButton заключается в следующем:
myToggleButton.selectedProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
if(newValue){
myGridPane.getColumnConstraints().get(0).setPercentWidth(100);
}else{
myGridPane.getColumnConstraints().get(0).setPercentWidth(0);
}
}
});
Отлично, спасибо! – bAris