在我的节目,我有没有办法正常的窗口和全屏状态之间切换:的KeyListener不配置后工作()
public void setFullScreen(boolean enableFullScreen) {
Frame.fullScreen = enableFullScreen;
dispose();
if (enableFullScreen) {
getContentPane().setPreferredSize(resFull);
setSize(resFull);
setBounds(Frame.graphicsDev.getConfigurations()[0].getBounds().x, Frame.graphicsDev.getConfigurations()[0].getBounds().y, resFull.width, resFull.height);
//code for resizing components
setUndecorated(true);
setResizable(false);
} else {
getContentPane().setSize(resNormal);
getContentPane().setPreferredSize(resNormal);
//code for resizing components
setUndecorated(false);
setResizable(true);
}
pack();
setVisible(true);
}
的resFull
和resNormal
是维变量。
当我点击打开正常的窗口F11
它改变全屏状态(setFullScreen(!Frame.fullScreen)
),但改变后通常不会收到任何信号 - 我要切换到其它应用程序,然后转回到这个窗口 - 它的工作原理。
你在部署和处置为什么呢? Dispose是用于删除您调用它的任何内容。 – Radiodef
@Radiodef:实际配置不是为了“删除”,而是为了释放本地资源。在显示它之前,你绝对不想放置顶层窗口,但调用'pack()'和'setVisible(true)'应该重新构成本地资源。 –
我不得不这样做,因为我想调用'setUndecorated()'。 – MarPiRK