Como ouvir o evento de redimensionamento do Stage no JavaFX?

Eu quero executar algumas funcionalidades no evento de redimensionamento do formulário (ou Scene ou Stage seja o que for).

Mas como posso detectar o evento de redimensionamento de formulário no JavaFX?

Você pode ouvir as alterações de widthProperty e heightProperty do Stage :

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

Nota: Para ouvir alterações de largura e altura, o mesmo ouvinte pode ser usado de maneira simples:

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

Mantendo uma proporção fixa entre largura e altura:

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