Слушатель KeyAdapter работает в Windows, а не на Mac - PullRequest
1 голос
/ 02 апреля 2012

Я создал простую игру Nibbles (Snakes), и все отлично работает.

Однако, когда я копирую все на свой Mac (разрабатываю на ПК) и компилирую те же java-файлы, прослушиватель событий keyAdapter для перемещения моей змеи не отвечает.

Я не уверен, что не так.

вот фрагмент, но если кто-нибудь захочет взглянуть на всю программу, я мог бы отправить это в частном порядке. СПАСИБО!

getThis().addKeyListener(new KeyAdapter()  {
        public void keyPressed(KeyEvent event) {                    
            if(event.getKeyCode() == KeyEvent.VK_UP)
                if(!glass.game.getDirection().equals("D"))
                    glass.game.setDirection("U");

            if(event.getKeyCode() == KeyEvent.VK_DOWN)
                if(!glass.game.getDirection().equals("U"))
                    glass.game.setDirection("D");

            if(event.getKeyCode() == KeyEvent.VK_LEFT)
                if(!glass.game.getDirection().equals("R"))
                    glass.game.setDirection("L");

            if(event.getKeyCode() == KeyEvent.VK_RIGHT)
                if(!glass.game.getDirection().equals("L"))
                    glass.game.setDirection("R");
          }
});   

1 Ответ

6 голосов
/ 02 апреля 2012

используйте KeyBindings вместо KeyListener, KeyListener не предназначен для прослушивания KeyEvents в компонентах Swing J, это слушатель для компонентов AWT, пример здесь

...