SetX and setY do not work when trying to position images

I am having problems positioning my images in my JavaFX program using setX and setY in ImageView for images. I'm not sure what the problem is? Appreciate any help! Here is my code:

        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();

I suspect something went wrong because I set the background image.
img here about what's going on

+4
source share
3 answers

StackPane, (setX setY). StackPane - . ( StackPane).

Pane Group, , .

, setLayoutX setLayoutY, setX setY, , setX setY ( ImageView).

Pavlo, , ( ), , .

+2

StackPane Pane .

+2

If for any reason you want to place an element in a StackPane, you can use setTranslateX and setTranslateY . These methods set the x and y values ​​AFTER the StackPane has completed its layout, so you will have a different starting position depending on the alignment that your StackPane uses for its children.

0
source

Source: https://habr.com/ru/post/1672874/


All Articles