ActionListener#actionPerformed で ActionEventを取得する以外に InputMap と ActionMap によるキーイベントの取得方法がある。 AbstractAction クラスを継承してアクションクラスを生成する class TestAction extends AbstractAction { public void actionPerformed(ActionEvent e){ System.out.println("test"); } } キーストロークとアクションをマッピングする KeyStroke tab = KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0); getInputMap().put(tab, "test"); getActionMap().put("test", new TestAction()); ○親と子コンポーネントで同じイベントを処理する場合 getInputMap() を getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT) とすると、親と子コンポーネントにフォーカスがあるときのインプットマップを取得できる。 !swing 標準のstrokeを無効にする getInputMap().put(tab, null); または getInputMap().remove(tab); で無効に出来るはずだが、うまく行かないことがある。 getInputMap().put(tab, "none"); とダミーを登録すると、無効に出来る。 {{category2 プログラミング言語,Java}}