ミスった。

public class App {

  public static void main(String[] args) {
    final Frame frame = new Frame();

    final Game game = new Game(); //
    frame .addKeyListener(game); // この三行だけで済む←(1)
    frame .addPaintListener(game); //

    frame.setVisible(true);
  }

}

これで済む話だから愚痴ってんだろ。

それからゲーム自体が所詮はイベントをハンドリングし、ハンドリング対象に描画するだけのプログラムなのだから、

Frameの中のPanelの中の適当なComponentに対して、素直に(1)だけすりゃサクッと動く訳なんだから。
それを自前のComponentクラスを作って使うとか、設計的に糞だな〜。とぼやいただけ。