Swing/SelectNextRow のバックアップの現在との差分(No.12)
TITLE:JTableの次行にTabキーでフォーカスを移動
JTableの次行にTabキーでフォーカスを移動
編集者:Terai Atsuhiro~
作成日:2005-04-18
更新日:2021-07-14 (水) 23:43:44
概要
Tabキーでセルのフォーカスが次行に移動するように設定します。Screenshot
Advertisement
概要
Tabキーでセルのフォーカスが次行に移動するように設定します。サンプルコード
#spanend
#spanadd
InputMap im = table.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
#spanend
#spanadd
KeyStroke tab = KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0);
#spanend
#spanadd
KeyStroke enter = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0);
#spanend
#spanadd
im.put(tab, im.get(enter));
#spanend
#spanadd
View in GitHub: Java, Kotlin#screenshot
解説
上記のサンプルでは、チェックボックスでTabキーでのフォーカスの移動(セル毎に移動)が、Enterキーと同じ(行毎に移動)になるように切り替えています。サンプルコード
InputMap im = table.getInputMap(JTable.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));
- 逆遷移のShift+Tabなどに対応する場合は修飾子を
0
ではなくInputEvent.SHIFT_DOWN_MASK
にしたKeyStroke
をInputMap
に設定する#spanend #spanadd KeyStroke stab = KeyStroke.getKeyStroke(KeyEvent.VK_TAB, InputEvent.SHIFT_DOWN_MASK); #spanend #spanadd KeyStroke senter = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, InputEvent.SHIFT_DOWN_MASK); #spanend #spanadd
- &jnlp;
- &jar;
- &zip;
参考リンク
- Swing (Archive) - JTable skiping the cells disableds
- 編集不可のセルを飛ばして、Tabキーでフォーカス移動を行うサンプル