【发布时间】:2012-02-24 09:48:42
【问题描述】:
我目前正在编写一个 Java 应用程序,我希望只允许窗口的某些窗口大小。作为示例,我希望用户可以将窗口(JFrame)的大小调整为200/300、350/400 和400,450。现在如果用户调整窗口大小,只有当窗口与可能的大小匹配时才会被接受。
如果用户可以实时看到窗口大小是否被接受,那就太酷了。 (例如:窗口大小在调整大小时会保持在可能的大小)
【问题讨论】:
我目前正在编写一个 Java 应用程序,我希望只允许窗口的某些窗口大小。作为示例,我希望用户可以将窗口(JFrame)的大小调整为200/300、350/400 和400,450。现在如果用户调整窗口大小,只有当窗口与可能的大小匹配时才会被接受。
如果用户可以实时看到窗口大小是否被接受,那就太酷了。 (例如:窗口大小在调整大小时会保持在可能的大小)
【问题讨论】:
作为用户,这真的会让我很恼火。我可能暂时想要使用非标准尺寸,以便我可以看到您的应用和其他应用中的内容,即使您的应用在该尺寸下布局不佳。
如果您确实必须限制允许的大小,请禁用用户调整大小。然后添加一个菜单项,用户可以在其中从可接受的尺寸列表中进行选择。
【讨论】:
一个简单的解决方法是禁用手动调整大小,并提供一个菜单或类似的东西,让用户可以选择他想要的窗口大小,就像游戏中的屏幕分辨率一样。
另一个可能稍微复杂一点的解决方案是,在调整窗口大小后,在鼠标释放时创建一个事件,检查新大小,然后将其“四舍五入”到最接近您喜欢的大小。
【讨论】:
ComponentListener 和componentResized 方法。
ComponentListener 可以做到这一点,但请注意,如果您将重叠最大值,那么Container 将在屏幕上闪烁,但@camickr 的ComponentResizer 代码存在代码
【讨论】: