如何在JavaFX中向形状添加两个图像,一个在另一个之上?
请帮忙 我正在尝试向形状添加两个图像:如何在JavaFX中向形状添加两个图像,一个在另一个之上?,java,javafx,Java,Javafx,请帮忙 我正在尝试向形状添加两个图像: @FXML private Rectangle rectangle; Image img1 = new Image("a.png"); Image img2 = new Image("b.png"); rectangle.setFill(new ImagePattern(img1)); rectangle.setFill(new ImagePattern(img2)); 图像有一个透明的背景。两者都应该是可见的。一个比另一个高 但只有一个是可见的 如何正
@FXML
private Rectangle rectangle;
Image img1 = new Image("a.png");
Image img2 = new Image("b.png");
rectangle.setFill(new ImagePattern(img1));
rectangle.setFill(new ImagePattern(img2));
图像有一个透明的背景。两者都应该是可见的。一个比另一个高
但只有一个是可见的
如何正确添加图像
我将非常感谢你的建议
更新
应用程序功能:
其他人已经说过,
Shape
只能有一个填充,因此只显示一个图像,您可以使用StackPane
将元素放置在另一个元素上,这取决于您想要实现的效果,您可能根本不需要使用Rectangle
您可以在ImageView
上设置BlendMode
,以更改它们的混合方式
例如:
StackPane stackPane = new StackPane();
Image img1 = new Image("a.png");
Image img2 = new Image("b.png");
stackPane.getChildren().addAll(new ImageView(img1), new ImageView(img2));
也许它可以帮你我需要设置几个图像。但是我不能使用getChildren()。addAllOnly只有一个可见,因为
setFill
replace old value一个形状只能有一个填充,不能将多个绘制组合到一个。这意味着您需要创建一个包含两个图像内容的图像。不过我不建议这样做:只需将VBox
与2ImageView
s作为孩子一起使用即可。是的,我正在尝试更改它。但它失败了,我知道。在这种情况下,将窗格用作其他容器将得到相同的结果。但是我不能使用getChildren().addAll您不能使用addAll
的原因是什么?