2013-02-20 6 views
4

Я использую StackPanel в качестве контейнера для своих фигур, панелей и т. Д. Я обнаружил, что координаты X, Y (0,0) расположены прямо в центре моей панели.JavaFX - StackPane X, координаты Y

Можно ли переместить его влево сверху на панели? Вычисление всех размеров из центра намного сложнее.

ответ

11

Вы можете установить расположение узлов добавлен в StackPane в положение внутри Stackpane используя StackPane.setAlignment(node, position) метод:

Label topLeftLabel = new Label("Top Left"); 
StackPane stack = new StackPane(); 
stack.getChildren().add(topLeftLabel); 

StackPane.setAlignment(topLeftLabel, Pos.TOP_LEFT); 

Несмотря на то, что это возможно, из вашего краткого описания того, как вы пытаясь использовать StackPane, похоже, вам было бы лучше использовать обычный Pane или Group или AnchorPane для такого абсолютного позиционирования, которого вы, похоже, хотите достичь.

Возможно, воспользуйтесь визуальным инструментом, например SceneBuilder. Даже если вы не используете FXML, который он выводит, SceneBuilder должен дать вам гораздо лучшее представление о том, как работают механизмы макета JavaFX. SceneBuilder использует AnchorPane в качестве панели макета по умолчанию, используемой для обеспечения абсолютного позиционирования элементов (что, похоже, является тем, чего вы хотите достичь).

Смежные вопросы