Swing/FocusTraversalKeys のバックアップの現在との差分(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Swing/FocusTraversalKeys へ行く。
- 1 (2008-06-02 (月) 13:10:23)
- 2 (2008-06-03 (火) 18:43:45)
- 3 (2013-01-20 (日) 23:53:01)
- 4 (2013-07-26 (金) 01:27:30)
- 5 (2013-08-20 (火) 14:24:29)
- 6 (2014-03-18 (火) 18:29:20)
- 7 (2015-11-04 (水) 04:18:11)
- 8 (2017-04-04 (火) 14:17:08)
- 9 (2017-04-25 (火) 17:13:11)
- 10 (2018-02-21 (水) 13:03:51)
- 11 (2018-03-30 (金) 13:06:56)
- 12 (2020-03-28 (土) 20:49:55)
- 13 (2021-10-05 (火) 02:06:37)
- 追加された行はこの色です。
- 削除された行はこの色です。
TITLE:FocusTraversalKeysに矢印キーを追加してフォーカス移動 #navi(../) *FocusTraversalKeysに矢印キーを追加してフォーカス移動 [#tcf9885b] Posted by [[terai]] at 2008-06-02 --- category: swing folder: FocusTraversalKeys title: FocusTraversalKeysに矢印キーを追加してフォーカス移動 tags: [KeyboardFocusManager, Focus, Container] author: aterai pubdate: 2008-06-02T13:10:23+09:00 description: デフォルトのKBD{Tab}キーに加えて、矢印キーでもフォーカス移動できるように設定します。 image: https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTNHR5gShI/AAAAAAAAAaQ/KUE3fbR0bXo/s800/FocusTraversalKeys.png --- * 概要 [#summary] デフォルトのKBD{Tab}キーに加えて、矢印キーでもフォーカス移動できるように設定します。 #contents #download(https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTNHR5gShI/AAAAAAAAAaQ/KUE3fbR0bXo/s800/FocusTraversalKeys.png) **概要 [#m8f67375] デフォルトのTABキーに加えて、矢印キーでもフォーカス移動できるように設定します。 -&jnlp; -&jar; -&zip; #screenshot **サンプルコード [#c3444b6b] #code{{ * サンプルコード [#sourcecode] #code(link){{ KeyboardFocusManager focusManager = KeyboardFocusManager.getCurrentKeyboardFocusManager(); Set<AWTKeyStroke> forwardKeys = new HashSet<AWTKeyStroke>( Set<AWTKeyStroke> forwardKeys = new HashSet<>( focusManager.getDefaultFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS)); forwardKeys.add(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, 0)); forwardKeys.add(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0)); forwardKeys.add(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0)); focusManager.setDefaultFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, forwardKeys); Set<AWTKeyStroke> backwardKeys = new HashSet<AWTKeyStroke>( Set<AWTKeyStroke> backwardKeys = new HashSet<>( focusManager.getDefaultFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS)); backwardKeys.add(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, 0)); backwardKeys.add(KeyStroke.getKeyStroke(KeyEvent.VK_UP, 0)); backwardKeys.add(KeyStroke.getKeyStroke(KeyEvent.VK_UP, 0)); focusManager.setDefaultFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, backwardKeys); }} **解説 [#f1452eb0] 上記のサンプルでは、デフォルトのトラバーサルキー(TAB,SHIFT+TAB)に加えて、上下左右の矢印キーでもフォーカス移動できるようになっています。 * 解説 [#explanation] 上記のサンプルでは、デフォルトのフォーカストラバーサルキー(KBD{Tab}、KBD{Shift+Tab})に加えて、上下左右の矢印キーでもフォーカス移動できるように設定しています。 -KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS --KeyEvent.VK_RIGHT, KeyEvent.VK_DOWN -KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS --KeyEvent.VK_LEFT, KeyEvent.VK_UP - `KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS` -- `KeyEvent.VK_RIGHT`, `KeyEvent.VK_DOWN` - `KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS` -- `KeyEvent.VK_LEFT`, `KeyEvent.VK_UP` ---- 各JFrameやJDialogに別々のFocusTraversalKeysを設定したい場合は、Container#setFocusTraversalKeysを使用します。 - 各`JFrame`や`JDialog`に別々の`FocusTraversalKeys`を設定したい場合は、以下のように`Container#setFocusTraversalKeys`を使用する #code{{ Set<AWTKeyStroke> forwardKeys = new HashSet<AWTKeyStroke>( Set<AWTKeyStroke> forwardKeys = new HashSet<>( frame.getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS)); forwardKeys.add(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, 0)); forwardKeys.add(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0)); forwardKeys.add(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0)); frame.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, forwardKeys); }} **参考リンク [#qecb6a95] -[[KeyboardFocusManager#setDefaultFocusTraversalKeys(int, java.util.Set)>http://java.sun.com/javase/ja/6/docs/ja/api/java/awt/KeyboardFocusManager.html#setDefaultFocusTraversalKeys(int, java.util.Set)]] -[[Container#setFocusTraversalKeys(int, java.util.Set)>http://java.sun.com/javase/ja/6/docs/ja/api/java/awt/Container.html#setFocusTraversalKeys(int, java.util.Set)]] -[[How to Use the Focus Subsystem>http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html#customFocusTraversal]] * 参考リンク [#reference] - [https://docs.oracle.com/javase/jp/8/docs/api/java/awt/KeyboardFocusManager.html KeyboardFocusManager (Java Platform SE 8)] - [https://docs.oracle.com/javase/jp/8/docs/api/java/awt/Container.html#setFocusTraversalKeys-int-java.util.Set- Container#setFocusTraversalKeys(...) (Java Platform SE 8)] - [https://docs.oracle.com/javase/tutorial/uiswing/misc/focus.html How to Use the Focus Subsystem] - [[Focusの移動>Swing/FocusTraversal]] **コメント [#yf942508] * コメント [#comment] #comment #comment