【发布时间】:2026-02-06 09:10:02
【问题描述】:
在我的应用程序中,我有一个主 shell 窗口和许多对话框(extends Dialog 类)。我在初始化它们时使用setSize(width,height),但我知道用户会根据自己的喜好不断调整它们的大小。
有什么聪明的方法可以在尺寸发生变化时得到通知以便我可以存储/加载它们?
(为什么工具包不提供开箱即用的东西,比如 XUL?)
【问题讨论】:
在我的应用程序中,我有一个主 shell 窗口和许多对话框(extends Dialog 类)。我在初始化它们时使用setSize(width,height),但我知道用户会根据自己的喜好不断调整它们的大小。
有什么聪明的方法可以在尺寸发生变化时得到通知以便我可以存储/加载它们?
(为什么工具包不提供开箱即用的东西,比如 XUL?)
【问题讨论】:
大多数(如果不是所有)GUI 工具包都有一个调整大小事件,只要用户(或其他人)调整给定小部件的大小,就会触发该事件。一些阅读示例Moving and resizing - SWT
【讨论】:
看看java.util.prefs.Preferences。宽度和高度设置可以通过 putInt() 保存并通过 getInt() 检索。
继承 Dialog 或 JDialog 并创建一个 SizeRememberingDialog 或(可能更好)创建一个 SizeRememberer(Dialog) 类以在构造时设置大小、侦听调整大小事件并保存新大小将是一项非常小的任务每当发生调整大小时。
【讨论】: