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

标签 java image javafx 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();

我怀疑是哪里出了问题,因为我设置了背景图。
img here on what's happening

最佳答案

不要将您的元素放在 StackPane 中如果您想明确定义它们的布局位置(setXsetY)。 StackPane 是一个托管布局 Pane 。它会自动设置添加到它的项目的位置(默认是将所有内容放在 StackPane 中的另一个顶部)。

而是使用 PaneGroup ,它们不是托管布局 Pane ,允许您根据需要在 Pane 中布局内容。

要在 Pane 中布局您的内容,您可以使用 setLayoutXsetLayoutY而不是 setX 和 setY,尽管我猜 setX 和 setY 也应该可以工作(我以前从未在 ImageView 上使用过它们)。

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

关于java - 尝试定位图像时 setX 和 setY 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42939530/

相关文章:

单击弹出窗口时,JavaFX 8 过滤的 ComboBox 抛出 IndexOutOfBoundsException

java - 打开的游标过多

java - 使用位图Android的内存不足错误

java - JFolderChooser.showOpenDialog 中的父组件是什么

css - 文字不会环绕图像

java - 如何从可绘制图像加载图像并将其转换为位图

java - 在 JavaFX 中扩展 Pane

java - 使用java获取图片的平均颜色并比较图片颜色

html - 需要截断img左右

java - 如何加速 JavaFX 应用程序的 Maven 构建?