尝试定位图像时 setX 和 setY 不起作用

5 java javafx image imageview javafx-2

我在使用图像的 ImageView 上的 setX 和 setY 在 JavaFX 程序中定位图像时遇到问题。我不确定是什么问题?感谢所提供的任何帮助!
这是我的代码:

        Image rocket2 = new Image("img/Rocket.png");
        ImageView iv1 = new ImageView(rocket2);
        iv1.setX(60);
        iv1.setY(44);

        Image rocket1 = new Image("img/Rocket.png");
        ImageView iv2 = new ImageView(rocket1);
        iv2.setX(5);
        iv2.setY(16);

        Image background = new Image("img/space.png");
        ImageView iv3 = new ImageView(background);

        StackPane root = new StackPane();
        root.getChildren().addAll(iv3, iv2, iv1);
        Scene scene = new Scene(root, 300, 300);
        scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
        primaryStage.setScene(scene);
        primaryStage.setResizable(false);
        primaryStage.setTitle("Space stuff");
        primaryStage.show();
Run Code Online (Sandbox Code Playgroud)

我怀疑出了问题,因为我设置了背景图片。
img 这里关于正在发生的事情

jew*_*sea 4

如果您想显式定义项目的布局位置(和) ,请勿将项目放置在StackPane中。StackPane 是托管布局窗格。它将自动设置添加到其中的项目的位置(默认是将 StackPane 中的所有内容置于另一个之上)。 setXsetY

相反,请使用Pane或Group,它们不是托管布局窗格,允许您根据需要在 Pane 中布局内容。

要在窗格中布局内容,您可以使用setLayoutXandsetLayoutY而不是 setX 和 setY,尽管我猜 setX 和 setY 也应该有效(我以前从未在 ImageView 上使用过它们)。

帕夫洛(Pavlo),在我输入此内容时已经创建了一个答案(因此该答案是重复的),但我将保留此答案,因为它添加了更多解释。