如何在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
    与2
    ImageView
    s作为孩子一起使用即可。是的,我正在尝试更改它。但它失败了,我知道。在这种情况下,将窗格用作其他容器将得到相同的结果。但是我不能使用getChildren().addAll您不能使用
    addAll
    的原因是什么?