在JavaFx Gui中添加图片

时间:2016-05-19 15:45:28

标签: java css javafx

我正在尝试在使用JavaFx创建的GUI中添加图像。我的JavaFx如下:

StackPane layoutTSignUp = new StackPane();
layoutTSignUp.setStyle("-fx-background-color: #FFFF;");

我怎样才能使用颜色来添加图像。此外,我如何在我的按钮中实现相同的目标:

teacherButton.setStyle("-fx-font: 45 Arial; -fx-base: #FFFF");

1 个答案:

答案 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); 
}

希望这有帮助。