KeyAdapter侦听器适用于Windows,而不适用于Mac

Wan*_*gat 1 java windows macos swing keylistener

我创建了一个简单的Nibbles(Snakes)游戏,一切都很完美.

但是,当我将所有内容复制到我的mac(在PC上开发)并编译相同的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");
          }
});   
Run Code Online (Sandbox Code Playgroud)

mKo*_*bel 6

使用KeyBindings替代的KeyListener,KeyListener不是被指定用于监听KeyEvents在Swing JComponents,这是监听器AWT组件,例如这里

  • +1完全正确; 这里的平台差异是焦点. (2认同)