Windowのフルスクリーン化
Total: 22579, Today: 2, Yesterday: 0
Posted by aterai at
Last-modified:
Summary
JDialogやJFrameなどを、フルスクリーン表示に切り替えます。
Screenshot

Advertisement
Source Code Examples
private void toggleFullScreenWindow() {
GraphicsEnvironment graphicsEnvironment =
GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice graphicsDevice =
graphicsEnvironment.getDefaultScreenDevice();
if (Objects.isNull(graphicsDevice.getFullScreenWindow())) {
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, KotlinDescription
上記のサンプルは、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.が発生する