2015-10-07 3 views
0

Я создаю всплывающие сообщения с подтверждением в своей JavaFX-игре и пытаюсь выяснить, как работает макет. Мой класс PopUp расширяет StackPane и его конструктор выглядит так:JavaFX VBox Resizing

public PopUp (String str) 
{ 
    super(); 
    Color dark = Color.rgb(0, 0, 0, 0.35); 
    setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE); 
    setPrefSize(Double.MAX_VALUE, Double.MAX_VALUE); 
    FXUtil.backgroundColor(dark, this); 

    Text displayText = new Text(str); 
    displayText.setFont(FontFactory.general(18.0)); 
    displayText.setFill(Color.WHITE); 
    displayText.setWrappingWidth(560.0); 

    buttonBox = new HBox(20.0); 
    buttonBox.setAlignment(Pos.CENTER); 
    FXUtil.backgroundColor(Color.GREY, buttonBox); 

    VBox arrangement = new VBox(20.0, displayText, buttonBox); 
    arrangement.setAlignment(Pos.CENTER); 
    arrangement.setMaxWidth(600.0); 
    FXUtil.backgroundColor(Color.RED, arrangement); 

    getChildren().add(arrangement); 
} 

(Класс FXUtil является удобство для установки цвета фона и FontFactory является то, что это звучит как)

Пара кнопок добавляются позже, но я с удивлением вижу, что VBox, компоновка, использует полное вертикальное пространство, хотя его предпочтительная высота - это объединенная высота его детей (плюс вставки и т. д., как в документе). В принципе, это высокий красный бар, который охватывает высоту окна.

Есть ли способ использовать его предпочтительную высоту, а не максимальную высоту? Я бы хотел, чтобы он был достаточно высоким, чтобы соответствовать его детям.

+2

Свойство максимальной высоты можно привязать к его высоте до высоты 1. –

+0

Хорошая идея, но это ничего не изменило. Я добавил: assembly.maxHeightProperty(). Bind (assembly.prefHeightProperty()); но это все еще высокий красный бар. –

+0

Предыдущий комментарий был неправильным. –

ответ

0

Привязать свойство максимальной высоты к расчетному значению высоты. В качестве:

arrangement.maxHeightProperty().bind(arrangement.heightProperty()); 
+0

Большое спасибо. Это ответ. Приветствия. –

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