Tak jak w temacie. Próbowałem na samym JFrame działa KeyListener, ale jak dodam i usunę z niego (przez remove()) JPanel, to już nie reaguje na Eventy. Co może to powodować?

Dobra, na prośbę [losowa nazwa] dorzucam trochę kodu:

class Menu extends JPanel

w konstruktorze tworzę JButton, dodaje MouseListenera do niego i dodaje do JPanel, a cały panel do JFrame:
w mousePressed() usuwam ten panel z JFrame (właśnie tutaj nie jestem pewien, czy to jest przyczyna, no bo przecież usuwam to, a dalej z tego chce korzystać, nie wiem, może tutaj jest coś źle).

                mThis = this;
                mPlayButton = new JButton("Play Snake");
                mPlayButton.setLocation(200, 200);
                mPlayButton.setSize(200, 200);
                mPlayButton.enable();
                mPlayButton.addMouseListener(new MouseListener() {
 
                        @Override
                        public void mouseReleased(MouseEvent e) {
                                // TODO Auto-generated method stub
 
                        }
 
                        @Override
                        public void mousePressed(MouseEvent e) {
                                // TODO Auto-generated method stub
 
                                // remove menu panel
                                mJFrame.remove(mThis);
 
                                Play play = new Play(mJFrame, mScoreboard, mGameState
                                                , mWindowDimension);
 
                                play.go();
 
                                // free memory
                                play = null;
                                System.gc();
                                mGameState.menu = false;
 
                                // bring back menu
                                mJFrame.add(mThis);
                        }
 
                        @Override
                        public void mouseExited(MouseEvent e) {
                                // TODO Auto-generated method stub
 
                        }
 
                        @Override
                        public void mouseEntered(MouseEvent e) {
                                // TODO Auto-generated method stub
 
                        }
 
                        @Override
                        public void mouseClicked(MouseEvent e) {
                                // TODO Auto-generated method stub
 
                        }
                });
                this.add(mPlayButton);
                mJFrame.add(this);


 class Play extends JPanel implements KeyListener

w konstruktorze dodaje KeyListener do JFrame i wtedy on nie reaguje na klawiaturę:

                // *add keyListener
                mJFrame.addKeyListener(this);

Dobra, w końcu znalazłem do tego rozwiązanie. Banalne, ale dla mnie, jako początkującego, było trudno na to wpaść :P.
Nikt mi nie pomógł, szkoda:
Błąd polega na tym, że odpalam grę w wątku AWT-Event-Queue, dlatego aplikacja nie przyjmuje żadnych zdarzeń.