我正在使用 JPanel
和 Graphics
来制作游戏。我已经实现了一个 KeyListener
并将其添加到我的 JPanel
中。但是,我无法让它读取键码。我添加了一条打印语句,我认为只要按下某个键就会打印该语句,但我按下的所有键都没有返回代码。这是我的 JPanel
构造函数:
public Game()
{
super();
JPanel mazepanel = new JPanel();
this.add(mazepanel);
this.setVisible(true);
this.addMouseListener(this);
this.addKeyListener(this);
}
这是我的KeyListener
。
public void keyTyped(KeyEvent kb)
{
System.out.println("Key pressed: " + kb.getKeyCode());
if (kb.getKeyCode() == KeyEvent.VK_UP)
{
forward = true;
}
else if (kb.getKeyCode() == KeyEvent.VK_LEFT)
{
left = true;
}
else if (kb.getKeyCode() == KeyEvent.VK_RIGHT)
{
right = true;
}
else if (kb.getKeyCode() == KeyEvent.VK_DOWN)
{
back = true;
}
else
{
}
this.repaint();
}
最佳答案
默认情况下,您的 JPanel 不可聚焦。添加
setFocusable(true);
做到这一点。
关于java - 为什么我的 KeyListener 不读取按键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27301055/