【发布时间】:2023-03-03 09:36:01
【问题描述】:
我有一个 Keylistener 类,用于我正在制作的游戏,它有 bpne 问题。我似乎无法通过按键来移动 pacman。似乎从未调用过 Keylistener 方法。我对 Java 和 GUI 界面比较陌生,所以如果我的编码有点生疏,请原谅我。
import java.awt.event.*;
public class PacRunner implements ActionListener, KeyListener
{
private static Grid gr;
public static void main (String[] args)
{
gr = new Grid();
gr.addGhost(new Location(4,11));
gr.movePac(new Location(6,11));
gr.show();
}
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode() == KeyEvent.VK_UP) gr.move(Location.UP);
else if(e.getKeyCode() == KeyEvent.VK_DOWN) gr.move(Location.DOWN);
else if(e.getKeyCode() == KeyEvent.VK_LEFT) gr.move(Location.LEFT);
else if(e.getKeyCode() == KeyEvent.VK_RIGHT) gr.move(Location.RIGHT);
}
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}
@Override
public void actionPerformed(ActionEvent e) {}
}
【问题讨论】:
-
对于 Swing,通常在基于 AWT 的较低级别
KeyListener上使用键绑定。有关如何使用它们的详细信息,请参阅How to Use Key Bindings。KeyListener的问题通常是 a) 组件没有焦点,或者.. b) 组件不可聚焦,-- 为了尽快获得更好的帮助,请发布 MCVE。 -
顺便说一句 - 这是使用 AWT 还是基于 Swing 的组件?
标签: java user-interface keylistener pacman