---
title: JTableの次行にTabキーでフォーカスを移動
tags: [JTable, InputMap]
author: aterai
pubdate: 2005-04-18T01:45:22+09:00
description: KBD{Tab}キーでセルのフォーカスが次行に移動するように設定します。
---
* 概要 [#ke417f84]
KBD{Tab}キーでセルのフォーカスが次行に移動するように設定します。

#download(https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTS5aM0UvI/AAAAAAAAAjg/g-wlrmrzml8/s800/SelectNextRow.png)

* サンプルコード [#q9096c71]
#code(link){{
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));
}}

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

逆遷移のKBD{Shift+Tab}なども対応する場合は、修飾子を`0`の代わりに`InputEvent.SHIFT_MASK`にして、同様に変更しています。

[https://forums.oracle.com/thread/1484284 Swing (Archive) - JTable skiping the cells disableds]に、編集できないセルを飛ばして、KBD{Tab}キーでフォーカス移動することができるサンプルがあるので参考にしてください。

* 参考リンク [#ub9a007e]
- [https://forums.oracle.com/thread/1484284 Swing (Archive) - JTable skiping the cells disableds]

* コメント [#h20d6278]
#comment
#comment