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);
        }
    }
}