修复java按键操作中的延迟问题
我正在创建一个使用keylistener的Java应用程序。我注意到,当用户按下按键时,使用按键监听器时,它会进行注册,然后需要一秒钟来检测保持。有没有办法摆脱这种短暂的延误修复java按键操作中的延迟问题,java,swing,keylistener,Java,Swing,Keylistener,我正在创建一个使用keylistener的Java应用程序。我注意到,当用户按下按键时,使用按键监听器时,它会进行注册,然后需要一秒钟来检测保持。有没有办法摆脱这种短暂的延误 public void keyPressed(KeyEvent arg0) { char key = arg0.getKeyChar(); if(key == 'a') update = Status.Left; else if(key == 's') update
public void keyPressed(KeyEvent arg0)
{
char key = arg0.getKeyChar();
if(key == 'a')
update = Status.Left;
else if(key == 's')
update = Status.Crouch;
else if(key == 'd')
update = Status.Right;
else if(key == ' ')
update = Status.Shoot;
else
update = Status.None;
System.out.println(arg0.getKeyChar());
this.repaint();
}
我认为这些事件是由JVM/操作系统生成的。用户必须更改按键延迟/按键重复设置以消除延迟
我认为没有办法通过代码来控制延迟。我建议您不要使用按键事件来检测保持。使用计时器不断检查按键是否按下。使用位集。按下键和释放键时,更新位集以跟踪按下的键。这样,您可以同时检测多个按键。
如果你正在构建一个游戏,你已经有了游戏时钟,可以用于此只需仔细检查——这是一个AWT应用程序而不是Swing应用程序,对吗?因为如果使用Swing,我会有一个解决方案——使用Swing计时器和键绑定。@DazSlayer:KeyEvent用于awt而不是Swing。秋千有。一定要读一些关于他们的书。它们比KeyEvent更合适。当做