Swing/FullScreen のバックアップ(No.7)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/FullScreen へ行く。
- 1 (2008-04-28 (月) 10:19:14)
- 2 (2008-04-28 (月) 18:16:22)
- 3 (2008-04-28 (月) 19:24:40)
- 4 (2008-05-24 (土) 02:17:23)
- 5 (2013-07-26 (金) 01:04:49)
- 6 (2013-09-18 (水) 20:58:37)
- 7 (2014-10-30 (木) 00:03:22)
- 8 (2015-11-20 (金) 15:20:53)
- 9 (2017-04-04 (火) 14:17:08)
- 10 (2017-05-24 (水) 17:28:52)
- 11 (2018-02-21 (水) 15:10:39)
- 12 (2020-02-20 (木) 15:10:17)
- 13 (2021-08-04 (水) 06:46:05)
- title: Windowのフルスクリーン化 tags: [GraphicsEnvironment, JFrame, JDialog] author: aterai pubdate: 2008-04-28T10:19:14+09:00 description: JDialogやJFrameなどを、フルスクリーン表示に切り替えます。
概要
JDialog
やJFrame
などを、フルスクリーン表示に切り替えます。
Screenshot
Advertisement
サンプルコード
private void toggleFullScreenWindow() {
GraphicsEnvironment graphicsEnvironment
= GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice graphicsDevice
= graphicsEnvironment.getDefaultScreenDevice();
if(graphicsDevice.getFullScreenWindow()==null) {
dialog.dispose(); //destroy the native resources
dialog.setUndecorated(true);
dialog.setVisible(true); //rebuilding the native resources
graphicsDevice.setFullScreenWindow(dialog);
}else{
graphicsDevice.setFullScreenWindow(null);
dialog.dispose();
dialog.setUndecorated(false);
dialog.setVisible(true);
dialog.repaint();
}
requestFocusInWindow();
}
View in GitHub: Java, Kotlin解説
上記のサンプルは、JDialog
をフルスクリーン表示とウィンドウ表示に切り替えることが出来ます。
- F11キー、ダブルクリック
- フルスクリーン表示、ウィンドウ表示の切り替え
- Escキー
- アプリケーション終了
フルスクリーン表示とウィンドウ表示を切り替える前に、タイトルバーの非表示、表示もsetUndecorated
メソッドで切り替えていますが、このメソッドを使用する前に一旦dispose
してウィンドウのネイティブリソースを開放しておく必要があります。
setUndecorated(boolean undecorated)
は、ダイアログが表示されていないときにだけ呼び出すことができますが、この「表示されていない」はisVisible()
ではなく、isDisplayable()
がfalse
の意味なので、dialog.setVisible(false);
としただけでは、Exception in thread "AWT-EventQueue-0" java.awt.IllegalComponentStateException: The dialog is displayable.
が発生します。
WebStart
(署名無し)から実行した場合、タスクバー(Windows
)などを消してフルスクリーン化は出来ないようです。