Mam dwie klasy dziedziczące po JPanel.

public class GameMenu extends JPanel

public class GamePanel extends JPanel implements Runnable, MouseInputListener, KeyListener

w klasie public class GameMain extends JFrame implements WindowListener
wykonuję:

gi = new GameMenu();
getContentPane().add(gm);
show();

wyswietla mi się oczywiście panel GameMenu. W nm wykonyję (po naciśnięciu przycisku) metodę w GameMain która wyświetla drugi panel:

getContentPane().remove(gm);
gm = null;
gp = new GamePanel();
getContentPane().add(gp);
show();

Wyświetla się drugi panel, ale tupojawia się problem, ponieważ nie reaguje na zdarzenia typu KeyEvent. Zdarzenia z myszy są prawidłowo przechwytywane. Co więcej, gdy ładuję od razu panel GamePanel (pomijam ładowanie GameMenu i zmiane paneli) wszystko działa idealnie.

Byłbym wdzięczny za pomoc. Z góry dzięki.