我正在尝试在使用JavaFx创建的GUI中添加图像。我的JavaFx如下:
StackPane layoutTSignUp = new StackPane();
layoutTSignUp.setStyle("-fx-background-color: #FFFF;");
我怎样才能使用颜色来添加图像。此外,我如何在我的按钮中实现相同的目标:
teacherButton.setStyle("-fx-font: 45 Arial; -fx-base: #FFFF");
答案 0 :(得分:2)
<强>编程方式强>
对于StackPane
,您可以使用BackgroundImage课程:
BackgroundImage backgroundImage= new BackgroundImage(new Image(getClass().getResource("thinking-man.jpg").toExternalForm(),32,32,false,true),
BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, BackgroundPosition.DEFAULT,
BackgroundSize.DEFAULT);
stackPane.setBackground(new Background(backgroundImage));
对于按钮:按钮具有graphic属性:
button.setGraphic(new ImageView(new Image(getClass().getResource("thinking-man.jpg").toExternalForm())));
使用CSS
如果您希望使用样式表来设置背景图像,可以使用:
-fx-background-image,-fx-background-repeat,-fx-background-position和-fx-background-size 。
For details you can read the JavaFX CSS reference for Region class.
使用与StackPane
相同的示例:
stackPane.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
stackPane.getStyleClass().add("stackpane-with-background");
在 application.css :
.stackpane-with-background{
-fx-background-image: url("thinking-man.jpg");
-fx-background-repeat: stretch;
-fx-background-size: 900 506;
-fx-background-position: center center;
-fx-effect: dropshadow(three-pass-box, black, 30, 0.5, 0, 0);
}
希望这有帮助。