Java中停止windows键输入延迟

Java中停止windows键输入延迟,java,keyevent,Java,Keyevent,我正在创建一个侧滚游戏,当前当我按下箭头键时,角色会移动,暂停,然后无限期移动,直到释放键为止 暂停源于Windows配置中的按键延迟,因此,如果按住按键时间过长,您不会意外地重复键入按键 我想知道有没有办法摆脱这个 以下是我的按键代码: public void keyReleased(KeyEvent ke){} public void keyTyped(KeyEvent ke){} public void keyPressed(KeyEvent ke){ int code = k

我正在创建一个侧滚游戏,当前当我按下箭头键时,角色会移动,暂停,然后无限期移动,直到释放键为止

暂停源于Windows配置中的按键延迟,因此,如果按住按键时间过长,您不会意外地重复键入按键

我想知道有没有办法摆脱这个

以下是我的按键代码:

public void keyReleased(KeyEvent ke){}

public void keyTyped(KeyEvent ke){}

public void keyPressed(KeyEvent ke){
    int code = ke.getKeyCode();

    if(code == KeyEvent.VK_UP){
        if(playerY > 0){
            playerY-=speed;
            repaint();
        }
    }

    else if(code == KeyEvent.VK_DOWN){
        if(playerY < 600){
            playerY+=speed;
            repaint();
        }
    }

    else if(code == KeyEvent.VK_RIGHT){
        if(playerX < 800){
            playerX+=speed;
            repaint();
        }
    }

    else if(code == KeyEvent.VK_LEFT){
        if(playerX > 0){
            playerX-=speed;
            System.out.println(playerX);
            repaint();
        }
    }
}
public void keyreased(KeyEvent ke){
public void keyTyped(KeyEvent ke){}
按下公共无效键(KeyEvent ke){
int code=ke.getKeyCode();
if(code==KeyEvent.VK_UP){
如果(播放>0){
游戏性-=速度;
重新油漆();
}
}
else if(code==KeyEvent.VK_DOWN){
if(游戏性<600){
玩耍+=速度;
重新油漆();
}
}
else if(code==KeyEvent.VK_RIGHT){
如果(playerX<800){
playerX+=速度;
重新油漆();
}
}
else if(code==KeyEvent.VK_LEFT){
如果(playerX>0){
playerX-=速度;
System.out.println(playerX);
重新油漆();
}
}
}

按键时,应设置一些变量,以确定移动。在键释放时,取消设置此变量


处理该变量的方法是调用该方法,例如moveLeft(),并在循环中检查该变量。在KeyReleased上,当您重新定义它时,循环结束。

非常感谢。我刚刚为上下左右创建了4个布尔值,在我的run方法中,根据哪个布尔值为true,它将执行一个移动,然后将其延迟10 msBtw。例如,这个问题已经被问过好几次了……但没有一个问题的标题像我的一样。我知道如何做关键事件,只是不知道如何摆脱拖延。