web-dev-qa-db-fra.com

Comment écouter l'événement de redimensionnement de Stage dans JavaFX?

Je veux effectuer certaines fonctionnalités sur l'événement de redimensionnement du formulaire (ou Scene ou Stage quel qu'il soit).

Mais comment puis-je détecter un événement de redimensionnement de formulaire dans JavaFX?

14
Amita Patil

Vous pouvez écouter les changements de widthProperty et heightProperty de Stage:

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

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

Remarque: Pour écouter les changements de largeur et de hauteur, le même écouteur peut être utilisé très simplement:

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

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

Garder un rapport largeur/hauteur fixe:

stage.minHeightProperty().bind(stage.widthProperty().multiply(0.5));
stage.maxHeightProperty().bind(stage.widthProperty().multiply(0.5));
3
M. S.