gpt4 book ai didi

java - 如何在 Swing 中停止重复的 keyPressed()/keyReleased() 事件

转载 作者:IT王子 更新时间:2023-10-29 00:27:05 25 4
gpt4 key购买 nike

所以我遇到的问题似乎是一个只发生在 Linux 上的错误。我试图在按下某个键时记录我的 Swing 应用程序,然后检测该键何时被释放。现在这不应该成为问题,因为 KeyListener应该为我处理这个。

问题是,当我按住按键时,我会收到很多重复的 keyPressed()/keyReleased() 事件,而不仅仅是单个 keypressed()。有没有人有解决方案或变通方法来了解何时真正在 Linux 上发布 key ?

谢谢。

最佳答案

So the problem that I am having appears to be a bug that occurs only on Linux

是的,这是一个 Linux 问题。

在 Windows 上,当按住某个键时,您会收到多个 KeyPressed 事件,但只会收到一个 KeyReleased 事件。

这个问题经常被问到,我从来没有见过好的解决方案。

但我认为解决方案的基础是使用定时器。按下该键时,您将启动一个计时器。当您获得另一个 keyPressed 时,您将重新启动计时器。因此,只要定时器间隔大于键盘的重复率,定时器就会在按下某个键时不断重置。当 keyPresses 停止生成时,Timer 将触发,因此您假设键已被释放。这意味着您将延迟处理 keyReleased。

关于java - 如何在 Swing 中停止重复的 keyPressed()/keyReleased() 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1736828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com