如何更改 Scene Builder 制作的按钮的颜色?
How to change color of buttons made from Scene Builder?
我在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");
}
}
}
您可以直接通过 属性 更改按钮颜色,而不是操纵样式。
下面是将按钮中的文本更改为红色的示例:
button.setTextFill(Color.RED);
这将改变背景颜色:
button.setBackground(new Background(new BackgroundFill(Color.RED, null, null);
正如 c0oder 所指出的,这是一个简单的错误。
将b1.setStyle("fx-background-color: #FF0000");
更改为b1.setStyle("-fx-background-color: #FF0000");
这成功了。
我在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");
}
}
}
您可以直接通过 属性 更改按钮颜色,而不是操纵样式。
下面是将按钮中的文本更改为红色的示例:
button.setTextFill(Color.RED);
这将改变背景颜色:
button.setBackground(new Background(new BackgroundFill(Color.RED, null, null);
正如 c0oder 所指出的,这是一个简单的错误。
将b1.setStyle("fx-background-color: #FF0000");
更改为b1.setStyle("-fx-background-color: #FF0000");
这成功了。