如何在 JavaFX 中监听 Stage 的 resize 事件?

新手上路,请多包涵

我想对表单的调整大小事件执行一些功能(或 SceneStage 无论它是什么)。

但是如何检测 JavaFX 中表单的调整大小事件?

原文由 Amita Patil 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 844
2 个回答

您可以收听 widthPropertyheightPropertyStage 的变化:

 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);

原文由 DVarga 发布,翻译遵循 CC BY-SA 3.0 许可协议

保持固定的宽高比:

 stage.minHeightProperty().bind(stage.widthProperty().multiply(0.5));
stage.maxHeightProperty().bind(stage.widthProperty().multiply(0.5));

原文由 Miss Chanandler Bong 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题