Как позиционировать узел через группу JavaFX - PullRequest
0 голосов
/ 17 марта 2019

У меня возникли проблемы с позиционированием моей кнопки с помощью setLayout Group в Java FX. Моя программа делает игру с кнопкой запуска, чтобы запустить ее.

Мой обновленный код:

    // Setting the layout of the button
    root.getChildren().get(root.getChildren().size() - 1).setTranslateX(SCENE_WIDTH / 2);
    root.getChildren().get(root.getChildren().size() - 1).setTranslateY(SCENE_HEIGHT / 10);

Мой код назначает узлы группе в следующем порядке: Canvas1, Canvas2, Canvas3, Canvas4, Button.

Код выше получает последний узел в списке (кнопка). Код также не влияет на кнопку.

Итак, как мне получить узел в списке внутри группы и расположить его соответственно?

Выход:

enter image description here

Ожидаемый результат:

enter image description here

Ответы [ 2 ]

2 голосов
/ 18 марта 2019

Похоже, вы используете не тот контейнер (группу) для того, чего хотите достичь.

Как должны отображаться четыре узла Canvas относительно кнопки запуска? Вы можете использовать AnchorPane или VBox. Все зависит от того, как должен выглядеть общий макет.

Возможно, вы захотите сделать основной макет с SceneBuilder: https://gluonhq.com/products/scene-builder/

Рассмотрим также, что группа делает для макета (не очень): https://github.com/javafxports/openjdk-jfx/blob/develop/modules/javafx.graphics/src/main/java/javafx/scene/Group.java

Обычно вы не вызываете setLayoutX / Y, если вы не реализует layoutChildren в новом родительском подклассе.

Edit: Чтобы сложить узлы Canvas, вы можете поместить их в StackPane, но я думаю, что я бы использовал AnchorPane, так как вы можете легко закрепить кнопку, которая будет смещена от нижнего края AnchorPane.

1 голос
/ 17 марта 2019

не используйте setLayout, он используется менеджерами компоновки, которые перемещают дочерние элементы (например, StackPane). Группа не одна. Вместо этого используйте setTranslateX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...