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