仅允许某些已定义的窗口大小

时间:2012-02-01 17:37:25

标签: java swing resize window

我正在编写一个Java应用程序,我想只允许窗口的某些窗口大小。作为示例,我希望用户可以将窗口(JFrame)的大小调整为200/300350/400400,450。现在,如果用户调整窗口大小,则只有在窗口与可能的大小匹配时才应接受该窗口。

如果用户能够实时看到窗口大小是否被接受,那将会很酷。 (例如:窗口大小会在调整大小时保持可能的大小)

3 个答案:

答案 0 :(得分:3)

ComponentListener可以做到这一点,但请注意,如果您重叠最大值,那么Container会在屏幕上闪烁,但@camickr存在ComponentResizer代码的代码< / p>

答案 1 :(得分:2)

这会让我非常恼火。我可能暂时想要使用非标准尺寸,以便我可以在您的应用中看到其他应用中的内容,即使您的应用在该尺寸下布局不好。

如果您确实必须限制允许的大小,请禁用用户调整大小。然后添加一个菜单项,用户可以从可接受的大小列表中进行选择。

答案 2 :(得分:2)

一个简单的修复可以是禁用手动调整大小,并提供一个菜单或类似的东西,让用户可以选择他想要的窗口大小,就像游戏中的屏幕分辨率一样..

另一个可能稍微复杂一点的解决方案是,在调整窗口大小后,您可以在鼠标释放时创建一个事件,检查新的大小,然后将其“舍入”到最接近的首选大小。