2

我正在尝试按照 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 文件,但它只为“消息”添加样式。

4

2 回答 2

4

原始代码的唯一问题是您的样式设置中有一个“错字”(英语?)。它应该是

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

不是

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

使用外部样式表

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

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

于 2016-03-11T21:50:10.917 回答
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);
}
于 2016-03-11T21:42:44.507 回答