https://tvbrowser.svn.sourceforge.net/svnroot/tvbrowser/trunk/tvbrowser/src/tvbrowser/ui/mainframe/MainFrame.javaをご覧ください。
メソッド内switchFullscreenMode()
:
dispose();
...
setFullScreenWindow(...);
setUndecorated(true/false);
setBounds(mXPos, mYPos, mWidth, mHeight);
...
setVisible(true);
実際には、マウスが側面に触れた場合に再表示されるさまざまなサイドパネルを非表示にするために、さらに多くのことが行われています。
また、境界を明示的に設定する必要があることに注意してください。Window.setExtendedState(MAXIMIZED_BOTH)
dispose() のタイムリーな近くでひどく干渉します。これは、どちらもオペレーティング システムの複数のネイティブ イベントに依存しているためです。これらのイベントは、その瞬間にウィンドウを表示できなければ失われます。
デフォルトの画面を直接取得することはお勧めしません。
GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
代わりにスクリーンを使用すると、JFrame は現在オンになっています。
setBounds(getGraphicsConfiguration().getBounds());
getGraphicsConfiguration().getDevice().setFullScreenWindow(this);
現在は同じでも、将来変更される可能性があります。