• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JTableの次行にTabキーでフォーカスを移動
#navi(../)
#tags()
RIGHT:Posted by &author(aterai); at 2005-04-18
*JTableの次行にTabキーでフォーカスを移動 [#ke417f84]
Tabキーでセルのフォーカスが次行に移動するように設定します。
---
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}キーでセルのフォーカスが次行に移動するように設定します。

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

//#screenshot
#ref(http://lh6.ggpht.com/_9Z4BYR88imo/TQTS5aM0UvI/AAAAAAAAAjg/g-wlrmrzml8/s800/SelectNextRow.png)

**サンプルコード [#q9096c71]
* サンプルコード [#sourcecode]
#code(link){{
InputMap im = table.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
KeyStroke tab   = KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0);
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));
}}

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

逆遷移のShift+Tabなども対応する場合は、修飾子を0の代わりにInputEvent.SHIFT_MASKにして、同様に変更しています。
- 逆遷移の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);
}}

[http://forums.sun.com/thread.jspa?threadID=509913 Swing (Archive) - JTable skiping the cells disableds]に、編集できないセルを飛ばして、Tabキーでフォーカス移動することができるサンプルがあるので参考にしてください。
* 参考リンク [#reference]
- [https://community.oracle.com/thread/1484284 Swing (Archive) - JTable skiping the cells disableds]
-- 編集不可のセルを飛ばして、KBD{Tab}キーでフォーカス移動を行うサンプル

**参考リンク [#ub9a007e]
-[http://forums.sun.com/thread.jspa?threadID=509913 Swing (Archive) - JTable skiping the cells disableds]

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