如何通过代码最大化 JFrame?

Posted

技术标签:

【中文标题】如何通过代码最大化 JFrame?【英文标题】:How to maximize a JFrame through code? 【发布时间】:2011-07-12 14:34:24 【问题描述】:

如何通过代码最大化一个JFrame?

【问题讨论】:

您是否尝试查看为 JFrame 及其超类定义的方法? @Andrew:是的,先生,我做到了,这对我的大脑来说太复杂了。 这是一个相关的example。 另见我给here的答案。 【参考方案1】:

对于类似的问题: http://bugs.sun.com/view_bug.do?bug_id=7177173

jdk7 的一个问题。尝试不直接在 .setVisable() 之后调用 .setExtendedState()

【讨论】:

【参考方案2】:

是的,Toolkit 解决方案会忽略 Windows 任务栏并使用全屏,这不是您想要的。

要立即最大化您的表单,只需在 JFrame 构造函数中添加 InitiateComponents() 调用之后。

this.setExtendedState(JFrame.MAXIMIZED_BOTH);

课程当然扩展JFrame

public class MyForm extends javax.swing.JFrame

【讨论】:

【参考方案3】:

setExtendedState(JFrame.MAXIMIZED_BOTH);不工作是java 7

你可以试试这个代码是否有效。

     Toolkit tk = Toolkit.getDefaultToolkit();  
     int xSize = ((int) tk.getScreenSize().getWidth());  
     int ySize = ((int) tk.getScreenSize().getHeight());  
     setSize(xSize,ySize);

【讨论】:

hmm ... 在任何最新版本中,MAXIMIZED_BOTH 对我来说都很好。你的操作系统是什么?顺便说一句:手动调整大小的问题是没有考虑任务栏(至少不可靠) 更好的使用setPreferredSize【参考方案4】:

这在 Java 7 之前完美运行

public class TEST

    public static void main(String args[])
    
        JFrame jf= new JFrame();
        jf.setVisible(true);
        jf.setExtendedState(JFrame.MAXIMIZED_BOTH);
        

【讨论】:

【参考方案5】:

试试这个:

f.setExtendedState( f.getExtendedState()|JFrame.MAXIMIZED_BOTH );

【讨论】:

我在谷歌搜索后发现了同样的情况。但是,上面的代码不适用于较新版本的 Java。 JFrame 没有该成员...MAXIMIZED_WHATEVER. @Tony:你使用的是哪个版本的 Java? @Harry:他们将常量MAXIMIZED_WHATEVERJFrame 移动到java.awt.Frame。这一改变解决了我的问题。我建议您也更新您的答案。谢谢。 @TonyOgrewall 是的,但是 afaik 它从 Frame 继承到 JFrame 所以你仍然可以使用它。

以上是关于如何通过代码最大化 JFrame?的主要内容,如果未能解决你的问题,请参考以下文章

如何从JFrame中仅删除“最大化”按钮?

如何检测JFrame窗口最小化和最大化事件?

JFrame最大化窗口

如何让 JFrame 没有任务栏按钮?

GUI编程----- 容器组件

java的GUI程序的基本思路是以JFrame为基础