如何更改 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");

这成功了。