【问题标题】:Automatically Maximize Window Using Netbeans使用 Netbeans 自动最大化窗口
【发布时间】:2011-07-09 14:37:55
【问题描述】:

我一直在尝试使用 Netbeans 让窗口自动最大化。

我可能已经浏览了 4 或 5 页的 Google 来寻找答案。

网页总是提供这样的内容:

public void run() {
    MyFrame myFrame = new MyFrame();
    myFrame.setVisible(true);
    myFrame.setExtendedState(myFrame.getExtendedState() | JFrame.MAXIMIZED_BOTH);
}

我使用的是 Netbeans 6.9.1

这不再起作用了吗?有没有其他方法可以做到这一点?

另外,如果您在网页上找到答案,请提供链接,以便我进一步调查。提前感谢您的任何意见! :)

【问题讨论】:

  • 您提供的代码看起来很好 - 为什么您认为这与 NetBeans 有关?如果您在 Eclipse 中甚至从命令行尝试此操作会发生什么?此外,您可能还想发布更多代码,以便我们查看是否有任何东西可以取消它。
  • 删除 myFrame.getExtendedState() 并仅保留 JFrame.MAXIMIZED_BOTH。状态没有(位)设置。 Toolkit.isFrameStateSupported 在复合状态下总是返回 false,即使所有部分都受支持;如果不支持部分状态,则不支持状态。 MAXIMIZED_BOTH 不是复合状态。
  • @trashgod,请阅读评论,我很清楚文档中的内容(评论来自private boolean java.awt.Frame.isFrameStateSupported(int state)
  • @bestsss:啊,我错过了你的评论更新。我不确定你的建议会如何改变任何事情。无论哪种方式,我都看到相同的结果。

标签: java netbeans window maximize maximize-window


【解决方案1】:

把下面的代码放在initcomponents();上面:

 public Test() {
    this.setExtendedState(JFrame.MAXIMIZED_BOTH);

    this.setUndecorated(true);
    //use this command to remove the maximize,minimize,close option from the 
    //title.        

     initComponents();

 }

【讨论】:

    【解决方案2】:

    把下面的代码放到initComponents();

    public Home() {
            initComponents();
            this.setExtendedState(MAXIMIZED_BOTH);
        }
    

    【讨论】:

      【解决方案3】:

      只需插入下面的代码

      公共项目 () {
        setExtendedState(MAXIMIZED_BOTH);
      }

      【讨论】:

        【解决方案4】:

        要在启动时最大化您的表单,您必须让 netbeans 在正确的时间做到这一点! 您可以通过 JFrame 的 windowOpened 事件来完成此操作:

        在 JFrame 的属性窗口中,单击事件按钮;

        单击 windowOpened 事件旁边的省略号 (...) 按钮;

        在处理程序对话框中,添加一个名为 formWindowOpened 的处理程序(由 NetBeans 建议);

        在源代码编辑器的 formWindowOpened 方法中,粘贴以下代码:

        代码:

            setExtendedState(JFrame.MAXIMIZED_BOTH); 
        

        祝你好运!

        【讨论】:

          【解决方案5】:

          关于setExtendedState(),“请注意,如果给定平台不支持该状态,则不会发生任何事情。”

          如果这不相关,sscce 可能会有所帮助。

          附录:这个例子似乎运行正常:

          import java.awt.EventQueue;
          import javax.swing.JFrame;
          import javax.swing.JPanel;
          
          /** @see http://stackoverflow.com/questions/5207425 */
          public class NewJavaGUI extends JPanel {
          
              private void display() {
                  JFrame f = new JFrame("NewJavaGUI");
                  f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                  f.add(this);
                  f.pack();
                  f.setExtendedState(f.getExtendedState() | JFrame.MAXIMIZED_BOTH);
                  f.setVisible(true);
              }
          
              public static void main(String[] args) {
                  EventQueue.invokeLater(new Runnable() {
          
                      @Override
                      public void run() {
                          new NewJavaGUI().display();
                      }
                  });
              }
          }
          

          附录:相关的状态常数似乎形成了一个连贯的集合。特别是MAXIMIZED_HORIZ | MAXIMIZED_VERT == MAXIMIZED_BOTH

          正常 0 0000 MAXIMIZED_HORIZ 2 0010 MAXIMIZED_VERT 4 0100 MAXIMIZED_BOTH 6 0110

          【讨论】:

          • 问题是状态不能通过 OR 设置,即使文档声明它们是 bitset,只是你不能拥有 NORMAL | MAXIMIZED_XXX 状态同时发生
          • @bestsss:对不起,我没有关注:2 | 4 == 6
          • @bestsss:一点也不;我很高兴有机会澄清我的理解。
          • @trashgod 非常感谢,这很完美......我想我现在明白了。你帮了大忙!希望这将显示在 Google 上,以供其他人查看!
          • @JT White:太好了!您可以通过单击灰色复选标记来接受此答案,使其变为绿色。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多