@bisswan

Меняется класс только при новом открытии приложения?

Меняется класс только при новом открытии приложения, как сделать чтобы класс менялся при изменении состояния чекбокса активный/не активный
public void add(String name, String description, boolean value, Consumer<Boolean> onChanged) {
        FlowPane container = new FlowPane();
        CheckBox checkBox = new CheckBox();
        checkBox.setSelected(value);
        checkBox.setText(name);
        Text desc = new Text();
        desc.setText(description);
        container.getChildren().add(checkBox);
        container.getChildren().add(desc);

        checkBox.setOnAction((e) -> onChanged.accept(checkBox.isSelected()));
        componentList.getChildren().add(container);
        container.getStyleClass().add("optContainer");
        checkBox.getStyleClass().add("optCheckbox");
        desc.getStyleClass().add("optDescription");
        FlowPane.setMargin(desc, new Insets(0, 0, 0, 30));

        if(checkBox.isSelected()){
            desc.getStyleClass().add("optDescriptionactive");
        } else {
            desc.getStyleClass().add("optDescription");
        }
    }
  • Вопрос задан
  • 14 просмотров
Пригласить эксперта
Ответы на вопрос 1
azerphoenix
@azerphoenix
Java Software Engineer
Предположу, что вам нужно добавить некий слушатель, который будет отслеживать изменение состояния чекбокса, а затем добавит соответствующий класс.
А то сейчас происходит следующее: вы изменяете состояние чекбокса, но проверка происходит раньше. При последующем запуске приложения вновь проверяется условие и так как чекбокс уже выбран, то класс добавляется.
Гляньте на этот код:
https://www.tutorialspoint.com/javafx-example-to-s...
В частности обратите внимание на Observable
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы