【问题标题】:Only allow some defined window sizes只允许一些定义的窗口大小
【发布时间】:2012-02-24 09:48:42
【问题描述】:

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

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

【问题讨论】:

    标签: java swing resize window


    【解决方案1】:

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

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

    【讨论】:

    • 是的,我明白了。但在我的情况下,大小只会相差 5-7 像素。问题是,如果我不能像这样解决它,我将不得不重写很多代码来解决布局问题。
    【解决方案2】:

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

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

    【讨论】:

    • 我认为,第二个选项会更简单一些。但我将使用ComponentListenercomponentResized 方法。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2011-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-02
      相关资源
      最近更新 更多