如何在全屏模式下切换全屏Swing框?
问题描述:
我有代码看起来像这样,这让我的JFrame全屏:如何在全屏模式下切换全屏Swing框?
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice device = env.getDefaultScreenDevice();
JFrame myFrame = new JFrame("Title", device);
myFrame.setVisible(true);
myFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);
myFrame.setUndecorated(true);
myFrame.setResizable(false);
myFrame.validate();
device.setFullScreenWindow(myFrame);
我怎么后来得到同样的JFrame停下来是全屏,并恢复仅仅是一个正常的窗口?我没有看到GraphicsDevice类的setFullScreenWindow
方法与之相反。我希望能够根据需要来回切换。
答
使用setFullScreenWindow(null);
然后调用myFrame.setVisible(true);
非常感谢这一点。还有一个简单的问题:我刚刚意识到我的应用程序实际上并未进入全屏模式。我得到一个'IllegalComponentStateException',在我称之为'setUndecorated(true)'的行上显示'框架是可显示的'。有关如何修复上述代码以使其工作的任何想法? – SoaperGEM 2014-11-23 00:50:30
可能是因为调用了'setExtendedState()'或'myFrame.validate()';它们不是全屏窗口所必需的。 – frenchDolphin 2014-11-23 00:54:28
我做了一些研究,实际的问题是,您将框架设置为一开始就可见。删除该行,你的程序应该可以正常工作。 – frenchDolphin 2014-11-23 01:00:26