最大化和防止在JFrame上调整大小?

时间:2011-01-16 06:03:02

标签: java swing jframe resize

我正在制作游戏,所以我想让JFrame开始最大化,但我也不希望用户调整游戏大小,因为它会搞砸图形。我想知道如何同时做两件事?

现在,我可以使用JFrame.setExtendedState(JFrame.MAXIMIZED_BOTH)来最大化,但是只要我执行JFrame.setResizeable(false),我就不能再使用setExtendedState()来最大化它。

我意识到我可以最大化它,存储宽度和高度,然后使用它,但如果可能的话,我希望窗口实际上看起来像是最大化了。如果有人知道我在说什么,标题栏会在最大化时更改,而只是在填充屏幕时调整大小。

2 个答案:

答案 0 :(得分:6)

这对我有用:

frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setVisible(true);
frame.setResizable(false);

答案 1 :(得分:3)

如果您使用的是JSR296,这就是它在单例Application类中的工作方式:

    JFrame main = view.getFrame();
    main.setExtendedState(JFrame.MAXIMIZED_BOTH);
    main.pack();
    show(view);
    main.setResizable(false);

如果没有pack()操作,窗口不会最大化。这是使用Linux和Java 6测试的。