JComponentを継承して作った独自コンポーネントでキーイベントを処理するやり方
わかってしまえば簡単なのだが、それを見つけるまでが大変。
import java.awt.*; import java.awt.event.*; import javax.swing.*; class TestKeyEvent extends JComponent { TestKeyEvent() { enableEvents(AWTEvent.KEY_EVENT_MASK); addKeyListener(new MyKeyListener()); setFocusable(true); } public static void main(String[] args) { TestKeyEvent test = new TestKeyEvent(); JFrame frame = new JFrame(); frame.getContentPane().add(test); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(640, 480); frame.setVisible(true); } class MyKeyListener extends KeyAdapter{ public void keyPressed(KeyEvent e) { System.out.println(e); } } }