设置 StackPane 背景图片

Set StackPane background image

我想使用 StackPane 设置背景图像自动调整大小。

我试过这个:

StackPane stackPane = new StackPane();
Image im = new Image(Dashboardpanel.class.getResource("/images/11.jpg").toExternalForm()); 
stackPane.setBackground(new Background(new BackgroundImage(im, BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, BackgroundPosition.CENTER, BackgroundSize.DEFAULT)));

但是当我调整 StackPane 大小时图像没有自动调整大小。重复图像以填补空白。无论我如何扩展 StackPane,我如何才能像 Stackpane 一样调整图像的大小?

不要使用默认的 BackgroundSize,创建一个新的 BackgroundSize 并使用 BackgroundSize 构造函数的 contain 和 cover 参数。

例如(我只是通过阅读javadoc写的,我没有测试它):

new BackgroundSize(BackgroundSize.AUTO, BackgroundSize.AUTO, false, false, false, true);

我建议对这种样式使用 CSS stylesheet 而不是在 Java 中编写样式。