JavaFX BorderPane不会采用背景颜色

时间:2016-03-11 21:37:43

标签: javafx borderpane

我正在尝试按照Oracle提供的教程教自己基本的JavaFX。

在BorderPane教程(https://docs.oracle.com/javafx/2/layout/builtin_layouts.htm)中,它指定了背景颜色。

这是我的代码片段:

/**
 * This Method creates and defines a horizontal box with a button.
 */
public HBox addHorizontalBoxWithButton() {
    // set up horizontal box and button
    HBox hBox = new HBox();
    hBox.setPadding(new Insets(10, 10, 10, 10));
    hBox.setSpacing(10);
    hBox.setStyle("-fx-background-colour: #FFFFFF;");
    hBox.setAlignment(Pos.CENTER);
    Button startButton = new Button("CLICK ME");
    startButton.setPrefSize(100, 30);
    // set up a message
    Text message = new Text("Click the button to get started.");
    message.setId("message");

    hBox.getChildren().add(message);
    hBox.getChildren().add(startButton);

    return hBox;
}

我尝试了各种不同的背景颜色,但都没有。我在这里错过了什么吗?

此外,我使用的是.css文件,但它只为“消息”添加了样式。

2 个答案:

答案 0 :(得分:4)

原始代码的唯一问题是你的样式设置中有“拼写错误”(角色?)。它应该是

hBox.setStyle("-fx-background-color: #FFFFFF;");

不是

hBox.setStyle("-fx-background-colour: #FFFFFF;");

使用外部样式表

#hbox {
    -fx-background-color: red ;
}

是比使用内联样式更好的解决方案。

答案 1 :(得分:1)

好的,我刚刚解决了这个问题。

我改变了我的代码:

/**
 * This Method creates and defines a horizontal box with a button.
 */
public HBox addHorizontalBoxWithButton() {
    // set up horizontal box and button
    HBox hBox = new HBox();
    hBox.setId("hBox");
    hBox.setPadding(new Insets(10, 10, 10, 10));
    hBox.setSpacing(10);
    // hBox.setStyle("-fx-background-colour: #FFFFFF;");
    hBox.setAlignment(Pos.CENTER);
    Button startButton = new Button("CLICK ME");
    startButton.setPrefSize(100, 30);
    // set up a message
    Text message = new Text("Click the button to get started.");
    message.setId("message");

    hBox.getChildren().add(message);
    hBox.getChildren().add(startButton);

    return hBox;
}

我将其添加到.css文件中:

#hBox {
-fx-background-color: linear-gradient(#04B45F, #81F79F);
}