JFrame最大化窗口

Nop*_*ope 84 java swing maximize-window

我正在使用swing来组合一个快速而又脏的动画.我希望窗口最大化.我怎样才能做到这一点?

kgi*_*kis 129

如果您要扩展JFrame:

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

  • 通过实例访问静态字段是一种不好的做法.请改用"JFrame.MAXIMIZED_BOTH". (13认同)
  • @nimcap:你是对的,我编辑了答案. (3认同)
  • 巨大的,巨大的bug以及上面的问题!(好吧,好的,没有重大后果的轻微警告......)应该是Frame.MAXIMIZED_BOTH而不是JFrame.MAXIMIZED_BOTH!:) (2认同)
  • @Crusader实际上绝对没有问题,因为两者都引用相同的常量字段(`JFrame`继承自`Frame`). (2认同)
  • 您无需扩展“JFrame”即可使用上述代码示例。事实上,这通常不是推荐的方法——而是使用组合。这段代码在私有“JFrame”实例上可以完美运行。 (2认同)

Von*_*onC 17

就像是 this.setExtendedState(this.getExtendedState() | this.MAXIMIZED_BOTH);

import java.awt.*;
import javax.swing.*;

public class Test extends JFrame
{
    public Test()
    {
        GraphicsEnvironment env =
GraphicsEnvironment.getLocalGraphicsEnvironment();
        this.setMaximizedBounds(env.getMaximumWindowBounds());
        this.setExtendedState(this.getExtendedState() | this.MAXIMIZED_BOTH);
    }

    public static void main(String[] args)
    {
        JFrame.setDefaultLookAndFeelDecorated(true);

        Test t = new Test();
        t.setVisible(true);
    }
}
Run Code Online (Sandbox Code Playgroud)


use*_*579 12

如果您使用JFrame,请尝试此操作

JFrame frame = new JFrame();
//...
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
Run Code Online (Sandbox Code Playgroud)