KeyListener在网页上的行为与在Eclipse中的行为不同。我该怎么做才能阻止这个?

时间:2014-12-17 00:33:31

标签: java applet keylistener

我有一个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();

0 个答案:

没有答案