Привязка StackPane
не размера не должна выполняться. Сцена автоматически изменяет размер root, чтобы заполнить всю доступную область. Предполагая, что вам нужны относительные размеры, использование StackPane
на самом деле не лучший выбор.
Если вы хотите, чтобы у ребенка было фиксированное расстояние слева, справа и снизу от StackPane
, вы можете сделать это, указав поля и выравнивание. Убедитесь, что ребенок не вырастает до размеров родителя, установив maxHeight
на использование предпочтительной высоты:
private void initUI(Stage stage) {
HBox hbox = new HBox();
hbox.setStyle("-fx-background-color: #FFFAAA;");
hbox.setMaxHeight(Region.USE_PREF_SIZE);
// could be calculated based on children instead of assigning
// an absolute value
hbox.setPrefHeight(30);
StackPane.setAlignment(hbox, Pos.BOTTOM_CENTER);
StackPane.setMargin(hbox, new Insets(20));
StackPane pane = new StackPane(hbox);
pane.setStyle("-fx-background-color: #AAFAAA;");
Scene scene = new Scene(pane, 600, 600);
stage.setTitle("Test");
stage.setScene(scene);
stage.show();
}