java为什么我的KeyListener不读取键?
我正在用JPanel
和Graphics
来做游戏。我已经实现了一个KeyListener
,并将它添加到了我的JPanel
。然而,我无法让它读取钥匙码。我添加了一个print语句,我假设它会在按下某个键时打印,但我按下的键都不会返回代码。这是我的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();
}
# 1 楼答案
默认情况下,您的JPanel不可聚焦。加
这样做
# 2 楼答案
下面是一个使用KeyListener的好例子:
从http://www.edu4java.com/en/game/game4.html