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?
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);
Garder un rapport largeur/hauteur fixe:
stage.minHeightProperty().bind(stage.widthProperty().multiply(0.5));
stage.maxHeightProperty().bind(stage.widthProperty().multiply(0.5));