如何在JavaFX中将图像设置为场景背景?

时间:2016-06-03 16:31:39

标签: javafx

标题说明了一切,我想。

如何将.jpg(或任何其他支持的图像格式)图像设置为场景背景?

有些通过使用HBoxImageImageView实现了这一目标,如下所示:

String url = ...
HBox box= new HBox();
Image x = new Image(url);
ImageView iv = new ImageView(x);
box.getChildren().add(iv);
box.setVisible(true);

然后我首先将该框添加到场景中,然后将其他所有内容添加到场景中。

我没有抱怨这段代码 - 它适用于我的目的 - 但是有没有正确的方法来设置背景?

2 个答案:

答案 0 :(得分:4)

只需在场景的根节点上调用setBackground即可。例如:

Pane root = ... ; // probably some pane subclass...
String url = ... ;
Image img = new Image(url);
BackgroundImage bgImg = new BackgroundImage(img, 
    BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT,
    BackgroundPosition.DEFAULT, 
    new BackgroundSize(BackgroundSize.AUTO, BackgroundSize.AUTO, false, false, true, false));

// put stuff in root as normal....

Scene scene = new Scene(root);

请参阅Javadocs了解BackgroundImage构造函数的参数等。

答案 1 :(得分:4)

ImagePattern可以用作Scene的{​​{3}}:

ImagePattern pattern = new ImagePattern(myImage);
scene.setFill(pattern);