You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaFX中如何禁用窗口调整大小但保留最大化按钮?

解决JavaFX禁用手动调整大小但保留最大化按钮的问题

嘿,我懂你想要的效果——窗口不能手动拖动边框调整大小,但保留最大化按钮方便全屏展示,对吧?直接用stage.setResizable(false)确实会把最大化按钮一起禁用,这可不是你想要的结果,不过有个简单的小技巧能实现你的需求。

核心思路

我们可以允许窗口调整大小,但将它的最小尺寸和最大尺寸设置为同一个固定值。这样一来,用户拖动窗口边框时,尺寸不会有任何变化(相当于禁用了手动调整),但最大化按钮依然能正常工作,点击后窗口会全屏,恢复时也会回到你设置的固定尺寸。

代码实现示例

// 先设置你想要的窗口固定初始尺寸
stage.setWidth(800);
stage.setHeight(600);

// 锁定宽度:最小宽度和最大宽度设为同一个值
stage.setMinWidth(stage.getWidth());
stage.setMaxWidth(stage.getWidth());

// 锁定高度:最小高度和最大高度设为同一个值
stage.setMinHeight(stage.getHeight());
stage.setMaxHeight(stage.getHeight());

// 保持resizable为true,确保最大化按钮不会被隐藏
stage.setResizable(true);

补充说明

  • 如果你的窗口尺寸是在FXML文件中定义的,也可以直接在FXML里设置minWidth、maxWidth、minHeight、maxHeight属性,效果完全一致。
  • 当你从最大化状态恢复窗口时,它会自动回到你设置的固定尺寸,体验和预期完全吻合。

内容的提问来源于stack exchange,提问作者Layynezz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 23:02:55