【问题标题】:Netbeans Java GUI Builder - how to prevent pack()?Netbeans Java GUI Builder - 如何防止 pack()?
【发布时间】:2013-03-07 12:02:27
【问题描述】:

我正在使用 Netbeans GUI Builder 构建一个应用程序,我希望主 JFrame 最大化,所以设置了:

setExtendedState(JFrame.MAXIMIZED_BOTH);

但是,Netbeans 调用 pack() 会导致 JFrame 大小减小。我知道我可以在调用 pack() 后再次使用上面的代码,但是无论如何我可以阻止 Netbeans 插入 pack() 行,这样我就可以让我的代码更干净一点?

(Netbeans 将它的 pack() 行放在一个您无法编辑的块中,所以我不能以通常的方式简单地删除它。)

【问题讨论】:

  • 鉴于pack() 应该在创建 GUI 的某个阶段被调用,你真的应该寻找一种方法来重新订购方法的调用,而不是让 JRE 不调用 pack()
  • 大小来自内置 GroupLayout 的问题,不要使用 XxxBuider
  • 谢谢安德鲁。我只是坚持使用我原来的方法,即调用 setExtendedState(JFrame.MAXIMIZED_BOTH);在调用 NB 的 initComponents() 方法之后(包括对 pack() 的调用)。

标签: java swing netbeans builder pack


【解决方案1】:

转到 JFrame 的“设计”,在导航器窗口中单击 JFrame,然后在“属性”选项卡中的“代码”上单击

表单大小政策 -> 无调整大小代码

应该可以的。

【讨论】:

  • 谢谢。这是我一直在寻找的答案,但是当我按照您的建议运行应用程序时,然后单击 JFrame 窗口的“Restore Down”图标,该窗口消失了……上面的 Andrew Thompson 评论。
  • 什么是“还原”图标?
  • 在 Windows 上每个窗口的右上角,您有三个图标 - “最小化”、“还原”和“关闭”。 Restore Down 通常会减小窗口的大小,但在我报告的情况下,它会将大小减小到零。 :(
  • 可能您需要定义框架的最小/推荐尺寸?
【解决方案2】:

可以强制 GUI 设计者做你想做的事。或者,管理您自己的顶级容器 Main.JFrame 在此 example 中,并使用设计器来管理各个面板。

【讨论】:

    【解决方案3】:

    可能有布局的东西会更好。但我的解决方案:覆盖 Window.pack :)

    @Override
    public void pack() {
    }
    

    【讨论】:

    • 这是一个糟糕的“解决方案”,每解决一个问题就会导致两个问题。
    • @AndrewThompson 不为所动,感激不尽。
    • @Joop Eggen 同意 (@Andrew Thompson),而不是 downvoter,当然/但这是 GroupLayout 的特定问题,没有任何机会重新布局此容器,请参阅我的 4th. point,顺便说一句,我在那里见过几次
    猜你喜欢
    • 1970-01-01
    • 2017-08-13
    • 1970-01-01
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    • 2015-11-29
    • 2012-10-20
    • 2016-10-29
    相关资源
    最近更新 更多