У меня есть файл стиля. css, который содержит такие стили, как:
.tab{
-fx-background-color:rgb(15,63,103);
... etc ...
}
.selectedTab{
-fx-background-color:rgb(52,105,155);
... etc ...
}
Я пытаюсь изменить css кнопки во время выполнения, когда выполняются определенные условия.
Я знаю, что вы можете установить стиль, набрав css inline с:
mBtn.setStyle("-fx-background-color:rgb(15,63,103);");
Хотя мне это кажется менее чистым, чем ссылки на стили в файле. css.
Поэтому я установил свои кнопки CSS изначально, используя:
newBtn.getStylesheets().add(getClass().getResource("styles.css").toExternalForm());
newBtn.getStyleClass().add("tab");
Но потом, когда я попытаюсь изменить его, используя:
mBtn.getStyleClass().removeAll();
mBtn.getStyleClass().add("selectedTab");
, это не изменится. Нужно ли обновлять / перерисовывать узел после изменения его стиля?
Кроме того, как правило, каков предпочтительный способ установки стилей в JavaFX. Это с setStyle ("..."); метод или это, связав его с таблицей стилей, или это третий способ, который я не рассмотрел.
Спасибо за ваше время:)
Редактировать: Решено пользователем Фабиан с первым комментарием. Проблема заключалась в том, что removeAll () - это метод, который удаляет все элементы, указанные в качестве аргументов. На самом деле я собирался использовать функцию clear ().