Подтвердить что ты не робот

Как прослушать изменение размера сцены в JavaFX?

Я хочу выполнить некоторые функции для изменения размера формы формы (или Scene или Stage что бы это ни было).

Но как я могу определить событие изменения размера в JavaFX?

4b9b3361

Ответ 1

Вы можете прослушивать изменения widthProperty и heightProperty Stage:

stage.widthProperty().addListener((obs, oldVal, newVal) -> {
     // Do whatever you want
});

stage.heightProperty().addListener((obs, oldVal, newVal) -> {
     // Do whatever you want
});

Примечание. Для прослушивания изменений ширины и высоты один и тот же прослушиватель можно просто использовать:

ChangeListener<Number> stageSizeListener = (observable, oldValue, newValue) ->
    System.out.println("Height: " + stage.getHeight() + " Width: " + stage.getWidth());

stage.widthProperty().addListener(stageSizeListener);
stage.heightProperty().addListener(stageSizeListener); 

Ответ 2

Сохранение отношения фиксированной ширины к высоте:

stage.minHeightProperty().bind(stage.widthProperty().multiply(0.5));
stage.maxHeightProperty().bind(stage.widthProperty().multiply(0.5));