我目前正在尝试在Linux中运行Java的全屏窗口。问题是我实际上可以使JFrame全屏,但如果框架未设置,则无法再次返回原始窗口。如果窗户装饰我可以恢复到原来的大小。
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gs = ge.getDefaultScreenDevice();
...
f.setUndecorated(true);//If set Window can't return to original size
gs.setFullScreenWindow(f);
gs.setFullScreenWindow(null);//Doesn't work!
知道如何解决这个问题吗?
答案 0 :(得分:2)
changeFrameFullScreenMode(Frame app){
GraphicsDevice gd = GraphicsEnvironment
.getLocalGraphicsEnvironment().getDefaultScreenDevice();
if (gd.getFullScreenWindow() == null){
app.dispose();
app.setUndecorated(true);
gd.setFullScreenWindow(app);
app.setVisible(true);
}else{ // back to windowed mode
app.dispose();
app.setUndecorated(false);
gd.setFullScreenWindow(null);
app.setVisible(true);
}
}
答案 1 :(得分:0)
我认为您无法可靠地将未修饰的全屏帧更改回窗口模式。我建议创建两个JFrame
,一个全屏,另一个窗口。当您想要返回到窗口模式时,将内容窗格添加到窗口框架(这会自动将其从全屏框架中删除),例如。
windowedFrame.setContentPane(fullScreenFrame.getContentPane());
windowedFrame.pack();
windowedFrame.setVisible(true);
fullScreenFrame.dispose();