我有一个Java Applet,我在其中使用Key Listener。当我在Eclipse中运行它时,它运行良好,我想要的方式。我已将其放入网页,Applet的行为也不同。我对此无能为力。我在下面包含了我的代码,以及Applet的链接。当我按下按钮时,我希望能够移动小方块。正如它现在在网页上,它就好像我有粘滞键。我不想要这个。此外,' W A S D'不要移动广场。只有箭头键。我希望他们俩能够控制矩形。
感谢您的帮助, 〜录音棚
Key Listener:
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
switch(e.getKeyCode()) {
case KeyEvent.VK_UP:
dy = -1;
break;
case KeyEvent.VK_RIGHT:
dx = 1;
break;
case KeyEvent.VK_DOWN:
dy = 1;
break;
case KeyEvent.VK_LEFT:
dx = -1;
break;
case KeyEvent.VK_W:
dy = -1;
break;
case KeyEvent.VK_D:
dx = 1;
break;
case KeyEvent.VK_S:
dy = 1;
break;
case KeyEvent.VK_A:
dx = -1;
break;
}
}
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
switch(e.getKeyCode()) {
case KeyEvent.VK_UP:
dy = 0;
break;
case KeyEvent.VK_RIGHT:
dx = 0;
break;
case KeyEvent.VK_DOWN:
dy = 0;
break;
case KeyEvent.VK_LEFT:
dx = 0;
break;
case KeyEvent.VK_W:
dy = 0;
break;
case KeyEvent.VK_D:
dx = 0;
break;
case KeyEvent.VK_S:
dy = 0;
break;
case KeyEvent.VK_A:
dx = 0;
break;
}
}
移动广场:
if(dy < 0)) {
playerY --;
}
if(dx > 0) {
playerX ++;
}
if(dy > 0 {
playerY ++;
}
if(dx < 0) {
playerX --;
}
绘制正方形:
g.drawRect(playerX, playerY, 20, 20);
在扩展Applet的类中请求焦点:
this.setFocusable(true);
this.requestFocusInWindow();
this.requestFocus();