你能帮我重构一下这段代码:
public void keyPressed(KeyEvent e)
{
if (e.getKeyCode()==39)
{
//Right arrow key code
}
else if (e.getKeyCode()==37)
{
//Left arrow key code
}
repaint();
}
请提及如何检查上/下箭头键。谢谢!
答案 0 :(得分:76)
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;
}
}
答案 1 :(得分:6)
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
答案 2 :(得分:6)
只是为了完成答案(使用KeyEvent是要走的路),但是向上箭头是38,向下箭头是40,所以:
else if (e.getKeyCode()==38)
{
//Up arrow key code
}
else if (e.getKeyCode()==40)
{
//down arrow key code
}
答案 3 :(得分:0)
如果您的意思是想将它附加到您的面板(您正在使用的窗口)。
然后你必须创建一个从IKeyListener接口扩展的内部类,然后将该方法添加到类中。
然后,通过以下方式将该类附加到您的面板: this.addKeyListener(new subclass());
答案 4 :(得分:0)
您应该使用以下内容:KeyEvent.VK_UP而不是实际代码。
你想如何重构它?重构的目标是什么?