#java #javafx #scenebuilder
#java #javafx #scenebuilder
Вопрос:
Я создал несколько кнопок (каждая представляет город) в SceneBuilder. Мне нужно установить их цвет в соответствии с количеством домов в каждом городе. Более темный, указывающий на большее количество свойств, и менее светлый (красный).
Я присвоил каждой кнопке fx: id в конструкторе сцен и вызвал ее в своем коде, но я не уверен, как изменить ее цвет с помощью кода javafx.
Кто-нибудь может мне помочь, я очень новичок в Javafx.
@FXML private Button b1 = new Button();
Сначала я пытался проверить, изменится ли цвет на самом деле, но он не меняется
@FXML
private void test() {
for (House s: list) {
if(s.getHouse().equals("Manchester") > 10000) {
DropShadow s = new DropShadow();
b1.setEffect(s);
b1.setStyle("fx-background-color: #FF0000");
}
}
}
Комментарии:
1. Опубликуйте, пожалуйста, какой-нибудь код
2. Пожалуйста, опубликуйте свой код или, по крайней мере, фрагменты
3. Выполнено. Могу ли я изменить цвет кнопок из javafx, если кнопка была создана в конструкторе сцен?
4. Изменить
b1.setStyle("fx-background-color: #FF0000");
наb1.setStyle("-fx-background-color: #FF0000");
5. Спасибо, у меня это сработало 😉
Ответ №1:
Как указал c0oder, это была простая ошибка.
Изменить b1.setStyle("fx-background-color: #FF0000");
на b1.setStyle("-fx-background-color: #FF0000");
Это сделало свое дело.
Ответ №2:
Вы можете изменить цвет кнопок непосредственно с помощью свойства, а не манипулируя стилем.
Вот пример изменения текста в кнопке на красный:
button.setTextFill(Color.RED);
Это означало бы изменение цвета фона:
button.setBackground(new Background(new BackgroundFill(Color.RED, null, null);
Комментарии:
1.
button.setBackground(new Background(new BackgroundFill(Color.REED, null, null);
не компилируется. Пожалуйста, опубликуйте протестированный код.2. Он должен быть Color.RED. Пример:
button.setBackground(new Background(new BackgroundFill(Color.RED, null, null);