首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当试图定位图像时,setX和setY无法工作

当试图定位图像时,setX和setY无法工作
EN

Stack Overflow用户
提问于 2017-03-21 22:40:19
回答 3查看 9.1K关注 0票数 5

我在JavaFX程序中使用图像视图上的setX和setY定位图像有问题。我不知道有什么问题?感谢你的帮助!

这是我的密码:

代码语言:javascript
复制
        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在这里讨论发生了什么

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-03-21 23:11:42

如果您希望显式地定义项目的布局位置( StackPanesetY),请不要将项放置在setY中。StackPane是托管布局窗格。它将自动设置添加到它的项目的位置(默认是将所有内容(一个放在StackPane内部的另一个之上)中心)。

相反,可以使用窗格,它们不是托管布局窗格,允许您任意地在窗格中布局内容。

要在窗格中布局内容,可以使用setLayoutXsetLayoutY,而不是setX和setY,不过我认为setX和setY也应该能工作(我以前从未在ImageView上使用过)。

Pavlo,已经创建了一个答案,而我正在输入这个(所以这个答案是一个重复的),但我会留下这个,因为它增加了更多的解释。

票数 4
EN

Stack Overflow用户

发布于 2017-03-21 23:05:54

StackPane代替Pane可以解决这个问题。

票数 3
EN

Stack Overflow用户

发布于 2017-03-22 16:45:23

但是,如果出于任何原因希望在StackPane中放置项,则可以使用setTranslateXsetTranslateY。这些方法在StackPane完成布局之后设置x和y值,因此根据StackPane对其子级使用的对齐方式,您将有一个不同的起始位置。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42939530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档