在我的節目,我有沒有辦法正常的窗口和全屏狀態之間切換:的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