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