我遇到的问题似乎只会在Linux上出现bug。 我正在尝试让我的Swing应用程序记录按下键盘的按键,然后检测何时释放该按键。这不应该成为问题,因为KeyListener应该为我处理这个问题。
问题在于,当我按住键时,我会收到很多重复的keyPressed()/keyReleased()事件,而不是只有单个keyPressed()。 是否有人有解决方案或解决Linux上真正释放按键的解决方法?
谢谢。
我遇到的问题似乎只会在Linux上出现bug。 我正在尝试让我的Swing应用程序记录按下键盘的按键,然后检测何时释放该按键。这不应该成为问题,因为KeyListener应该为我处理这个问题。
问题在于,当我按住键时,我会收到很多重复的keyPressed()/keyReleased()事件,而不是只有单个keyPressed()。 是否有人有解决方案或解决Linux上真正释放按键的解决方法?
谢谢。
我遇到的问题似乎是仅在Linux上发生的一个bug。
是的,这是一个Linux问题。
在Windows上,当按键被按住时,您会收到多个KeyPressed事件,但只有一个KeyReleased事件。
这个问题经常被问到,但我从未见过一个好的解决方案。
但我认为解决方案的基础是使用计时器。当按下按键时,启动一个计时器。当再次按下按键时,重新启动计时器。因此,只要计时器间隔大于键盘的重复率,当按键保持按下状态时,计时器将被不断重置。当键入停止生成时,计时器将触发,因此您可以假设该键已被释放。这意味着您将在处理KeyReleased时有一个延迟。
你可以在这里找到一个相当不错的解决方案。