Swing/DesktopMinOnScreenInsets のバックアップ(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/DesktopMinOnScreenInsets へ行く。
- 1 (2021-11-15 (月) 01:40:07)
- category: swing folder: DesktopMinOnScreenInsets title: JDesktopPane内のJInternalFrameがカーソルキーで移動可能な範囲を変更する tags: [JDesktopPane, JInternalFrame, UIManager] author: aterai pubdate: 2021-11-15T01:28:42+09:00 description: JDesktopPane内のJInternalFrameがカーソルキーを使用した移動で配置可能な領域をInsetsで設定します。 image: https://drive.google.com/uc?id=1utMxkJ4Bce477CzPmQgWLM4pMjdCkA3j
概要
JDesktopPane内のJInternalFrameがカーソルキーを使用した移動で配置可能な領域をInsetsで設定します。
Screenshot
Advertisement
サンプルコード
JInternalFrame f = createInternalFrame();
Dimension d = ((BasicInternalFrameUI) f.getUI()).getNorthPane().getPreferredSize();
UIManager.put("Desktop.minOnScreenInsets", new Insets(d.height, 16, 3, 16));
UIManager.put("Desktop.background", Color.LIGHT_GRAY);
View in GitHub: Java, Kotlin解説
上記のサンプルではUIManager.put("Desktop.minOnScreenInsets", Insets)
でJDesktopPane
内のJInternalFrame
がカーソルキーを使用した移動で配置可能な領域を設定しています。
Desktop.minOnScreenInsets
の設定はマウスによるJInternalFrame
の移動には無効で、Ctrl-F7キーでJInternalFrame
をカーソルキーによる移動モードにした場合のみ有効- Ctrl-F8でのカーソルキーによるリサイズモードでも有効だが拡大方向は無関係で、縮小方向は
InputMap
にキー入力が設定されていない
- Ctrl-F8でのカーソルキーによるリサイズモードでも有効だが拡大方向は無関係で、縮小方向は
UIManager.put("Desktop.minOnScreenInsets", new Insets(d.height, 16, 3, 16))
top
:JInternalFrame
のタイトルバーの高さを設定してJDesktopPane
の下辺からタイトルバーの高さ以上下にJInternalFrame
を下カーソルキーで移動不可に設定bottom
: デフォルトの3px
を設定して上カーソルキーでJDesktopPane
の上辺からJInternalFrame
の下辺の表示が3px
以下にならないよう設定left, right
:16px
を設定して左右カーソルキーでJDesktopPane
の左右辺からJInternalFrame
の右左辺の表示が16px
以下にならないよう設定