シンプルなNibbles(Snakes)ゲームを作成しました。KeyAdapterリスナーはMacではなくWindowsで動作します
しかし、自分の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");
}
});
一般的なアドバイス:使用列挙型方向ではなく、文字列の。 – fiction
"キーボードイベントを発生させるには、コンポーネントにキーボードフォーカスが必要です。" - [*キーリスナーの書き方*](http://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html) 。 – trashgod