Swing/SelectNextRow の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Swing/SelectNextRow へ行く。
- Swing/SelectNextRow の差分を削除
--- category: swing folder: SelectNextRow title: JTableの次行にTabキーでフォーカスを移動 tags: [JTable, InputMap, Focus] author: aterai pubdate: 2005-04-18T01:45:22+09:00 description: KBD{Tab}キーでセルのフォーカスが次行に移動するように設定します。 image: https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTS5aM0UvI/AAAAAAAAAjg/g-wlrmrzml8/s800/SelectNextRow.png --- * 概要 [#summary] KBD{Tab}キーでセルのフォーカスが次行に移動するように設定します。 #download(https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTS5aM0UvI/AAAAAAAAAjg/g-wlrmrzml8/s800/SelectNextRow.png) * サンプルコード [#sourcecode] #code(link){{ InputMap im = table.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); KeyStroke tab = KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0); KeyStroke enter = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0); im.put(tab, im.get(enter)); }} * 解説 [#explanation] 上記のサンプルでは、チェックボックスでKBD{Tab}キーでのフォーカスの移動(セル毎に移動)が、KBD{Enter}キーと同じ(行毎に移動)になるように切り替えています。 - 逆遷移のKBD{Shift+Tab}などに対応する場合は、修飾子を`0`ではなく`InputEvent.SHIFT_DOWN_MASK`にした`KeyStroke`を`InputMap`に設定する - 逆遷移のKBD{Shift+Tab}などに対応する場合は修飾子を`0`ではなく`InputEvent.SHIFT_DOWN_MASK`にした`KeyStroke`を`InputMap`に設定する #code{{ KeyStroke stab = KeyStroke.getKeyStroke(KeyEvent.VK_TAB, InputEvent.SHIFT_DOWN_MASK); KeyStroke senter = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, InputEvent.SHIFT_DOWN_MASK); }} * 参考リンク [#reference] - [https://community.oracle.com/thread/1484284 Swing (Archive) - JTable skiping the cells disableds] -- 編集不可のセルを飛ばして、KBD{Tab}キーでフォーカス移動を行うサンプル * コメント [#comment] #comment #comment