如何检查按下的键是否是Java KeyListener中的箭头键?
你能帮我重构此代码:如何检查按下的键是否是Java KeyListener中的箭头键?
public void keyPressed(KeyEvent e)
{
if (e.getKeyCode()==39)
{
//Right arrow key code
}
else if (e.getKeyCode()==37)
{
//Left arrow key code
}
repaint();
}
请注明如何检查向上/向下箭头键为well.Thanks!
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
switch(keyCode) {
case KeyEvent.VK_UP:
// handle up
break;
case KeyEvent.VK_DOWN:
// handle down
break;
case KeyEvent.VK_LEFT:
// handle left
break;
case KeyEvent.VK_RIGHT :
// handle right
break;
}
}
如果你的意思是你想把它添加到你的面板(你正在使用的窗口)。
然后您必须创建一个从IKeyListener接口扩展的内部类,然后将该方法添加到类中。然后,将该类附加到您的面板上: this.addKeyListener(new subclass());
你应该使用的东西,如:KeyEvent.VK_UP,而不是实际的代码。
你想如何重构它?重构的目标是什么?
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
//Right arrow key code
} else if (e.getKeyCode() == KeyEvent.VK_LEFT) {
//Left arrow key code
} else if (e.getKeyCode() == KeyEvent.VK_UP) {
//Up arrow key code
} else if (e.getKeyCode() == KeyEvent.VK_DOWN) {
//Down arrow key code
}
repaint();
}
该KeyEvent代码是API的所有部分:http://docs.oracle.com/javase/7/docs/api/java/awt/event/KeyEvent.html
final int code; code = e.getKeyCode();开关(代码){}将会更快更清晰。 – TofuBeer 2009-03-05 22:45:13
刚刚完成了答案(使用KeyEvent的是要走的路),但向上箭头键38和向下箭头是40这样:
else if (e.getKeyCode()==38)
{
//Up arrow key code
}
else if (e.getKeyCode()==40)
{
//down arrow key code
}
+1让我发笑 – 2009-03-05 22:52:16
我只需要知道使用什么常数检查这个,现在我用的三十七分之三十九等 – 2009-03-05 22:28:33
的数值进行比较,我不认为我真的称之为重构... – TofuBeer 2009-03-05 22:57:58