如何在JavaFX中监听Stage的resize事件?
我想在窗体的resize事件(或Scene
或Stage
无论它是什么)上执行一些function。
但是如何在JavaFX中检测表单的resize事件?
您可以侦听Stage
的widthProperty
和heightProperty
的更改:
stage.widthProperty().addListener((obs, oldVal, newVal) -> { // Do whatever you want }); stage.heightProperty().addListener((obs, oldVal, newVal) -> { // Do whatever you want });
注意:要同时监听宽度和高度的变化,可以非常简单地使用相同的侦听器:
ChangeListener stageSizeListener = (observable, oldValue, newValue) -> System.out.println("Height: " + stage.getHeight() + " Width: " + stage.getWidth()); stage.widthProperty().addListener(stageSizeListener); stage.heightProperty().addListener(stageSizeListener);
保持固定的宽高比:
stage.minHeightProperty().bind(stage.widthProperty().multiply(0.5)); stage.maxHeightProperty().bind(stage.widthProperty().multiply(0.5));