Search code examples
javajavafxpropertiesjavafx-8listener

How to listen resize event of Stage in JavaFX?


I want to perform some functionality on resize event of form (or Scene or Stage whatever it is).

But how can I detect resize event of form in JavaFX?


Solution

  • You can listen to the changes of the widthProperty and the heightProperty of the Stage:

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

    Note: To listen to both width and height changes, the same listener can be used really simply:

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