• category: swing folder: SelectNextRow title: JTableの次行にTabキーでフォーカスを移動 tags: [JTable, InputMap, Focus] author: aterai pubdate: 2005-04-18T01:45:22+09:00 description: Tabキーでセルのフォーカスが次行に移動するように設定します。 image: https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTS5aM0UvI/AAAAAAAAAjg/g-wlrmrzml8/s800/SelectNextRow.png

概要

Tabキーでセルのフォーカスが次行に移動するように設定します。

サンプルコード

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));
View in GitHub: Java, Kotlin

解説

上記のサンプルでは、チェックボックスでTabキーでのフォーカスの移動(セル毎に移動)が、Enterキーと同じ(行毎に移動)になるように切り替えています。

  • 逆遷移のShift+Tabなどに対応する場合は、修飾子を0ではなくInputEvent.SHIFT_DOWN_MASKにしたKeyStrokeInputMapに設定する
    KeyStroke stab = KeyStroke.getKeyStroke(KeyEvent.VK_TAB, InputEvent.SHIFT_DOWN_MASK);
    KeyStroke senter = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, InputEvent.SHIFT_DOWN_MASK);
    

参考リンク

コメント