本当にこれが必要な場合は、テーブル アクション マップのデフォルトの動作を変更する必要があります。
ActionMap am = table.getActionMap();
am.put("selectPreviousColumnCell", new PreviousFocusHandler());
am.put("selectNextColumnCell", new NextFocusHandler());
次に、トラバーサルを処理するためにいくつかのアクションが必要です
public class PreviousFocusHandler extends AbstractAction {
public void actionPerformed(ActionEvent evt) {
KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
manager.focusPreviousComponent();
}
}
public class NextFocusHandler extends AbstractAction {
public void actionPerformed(ActionEvent evt) {
KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
manager.focusNextComponent();
}
}
別のアプローチは、基になるものを無効にすることAction
です...
ActionMap am = table.getActionMap();
am.get("selectPreviousColumnCell").setEnabled(false);
am.get("selectNextColumnCell").setEnabled(false);
(これはテストしていません)
このアプローチの利点は、古いものへの参照を維持する必要なく、必要に応じて動作を有効/無効にできることです。Actions