我想在表单的resize事件(或Scene
或Stage
)上执行某些功能。
但是如何在JavaFX中检测表单的resize事件?
答案 0 :(得分:31)
您可以聆听Stage
的{{3}}和widthProperty
的更改:
stage.widthProperty().addListener((obs, oldVal, newVal) -> {
// Do whatever you want
});
stage.heightProperty().addListener((obs, oldVal, newVal) -> {
// Do whatever you want
});
注意:要听取宽度和高度的变化,可以非常简单地使用同一个监听器:
ChangeListener<Number> stageSizeListener = (observable, oldValue, newValue) ->
System.out.println("Height: " + stage.getHeight() + " Width: " + stage.getWidth());
stage.widthProperty().addListener(stageSizeListener);
stage.heightProperty().addListener(stageSizeListener);
答案 1 :(得分:3)
保持固定的宽高比:
stage.minHeightProperty().bind(stage.widthProperty().multiply(0.5));
stage.maxHeightProperty().bind(stage.widthProperty().multiply(0.5));