我创建了一个简单的 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");
}
});
最佳答案
使用 KeyBindings
而不是 KeyListener
,KeyListener
未指定用于监听 Swing JComponents 中的 KeyEvents
,这是 AWT 组件的监听器,示例 here
关于java - KeyAdapter 监听器适用于 Windows,不适用于 Mac,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9973190/