如何同时最大化和禁止调整JFrame窗口大小?

5
我正在制作一个游戏,所以我希望JFrame在启动时最大化,但我也不希望用户调整游戏大小,因为这会破坏图形。我想知道如何同时实现这两个功能?
目前,我可以使用JFrame.setExtendedState(JFrame.MAXIMIZED_BOTH)进行最大化,但是一旦我使用JFrame.setResizeable(false),就不能再使用setExtendedState()将其最大化。
我意识到我可以将窗口最大化,存储宽度和高度,然后使用它们,但如果可能的话,我更喜欢窗口实际上看起来像是最大化的。当窗口最大化时,标题栏与仅填充屏幕大小时不同,如果有人知道我在说什么,请告诉我。
2个回答

6
这对我有用:

这对我有用:

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

1
谢谢,那个有效!之前,我把setVisible()放在setResizeable()下面,但失败了,虽然我不知道它们为什么会互相干扰。 - user577304

2
如果您正在使用JSR296,则应在单例应用程序类内部按照以下方式运行:
    JFrame main = view.getFrame();
    main.setExtendedState(JFrame.MAXIMIZED_BOTH);
    main.pack();
    show(view);
    main.setResizable(false);

没有使用pack()操作,窗口将无法最大化。这是在Linux和Java 6上进行测试的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接