Swing/DesktopMinOnScreenInsets の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Swing/DesktopMinOnScreenInsets へ行く。
- Swing/DesktopMinOnScreenInsets の差分を削除
--- 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 --- * 概要 [#summary] JDesktopPane内のJInternalFrameがカーソルキーを使用した移動で配置可能な領域をInsetsで設定します。 `JDesktopPane`内の`JInternalFrame`がカーソルキーを使用した移動で配置可能な領域を`Insets`で設定します。 #download(https://drive.google.com/uc?id=1utMxkJ4Bce477CzPmQgWLM4pMjdCkA3j) * サンプルコード [#sourcecode] #code(link){{ 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); }} * 解説 [#explanation] 上記のサンプルでは`UIManager.put("Desktop.minOnScreenInsets", Insets)`で`JDesktopPane`内の`JInternalFrame`がカーソルキーを使用した移動で配置可能な領域を設定しています。 - `Desktop.minOnScreenInsets`の設定はマウスによる`JInternalFrame`の移動には無効で、KBD{Ctrl-F7}キーで`JInternalFrame`をカーソルキーによる移動モードにした場合のみ有効 -- KBD{Ctrl-F8}でのカーソルキーによるリサイズモードでも有効だが拡大方向は無関係で、縮小方向は`InputMap`にキー入力が設定されていない - `UIManager.put("Desktop.minOnScreenInsets", new Insets(d.height, 16, 3, 16))` - `Desktop.minOnScreenInsets`の設定はマウスによる`JInternalFrame`の移動には無効で、KBD{Ctrl+F7}キーで`JInternalFrame`をカーソルキーによる移動モードにした場合のみ有効 -- KBD{Ctrl+F8}でのカーソルキーによるリサイズモードでも有効だが拡大方向は無関係で、縮小方向は`InputMap`にキー入力が設定されていない - `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`以下にならないよう設定 * 参考リンク [#reference] - [[JInternalFrameをキー入力で移動、リサイズする>Swing/InternalFrameKeyInputOperation]] * コメント [#comment] #comment #comment