swing Java KeyListener keyPressed方法激发得太快
如果您使用java KeyListener
类,您知道如果按住一个键keyPressed
将触发一个KeyEvent
,然后大约半秒后将以非常快的速度多次触发同一个键。我想知道是否有办法防止KeyEvents
发射过快。我希望它们以一个很好的恒定速率,大约每500毫秒一次
你可以在下面搜索框中键入要查询的问题!
如果您使用java KeyListener
类,您知道如果按住一个键keyPressed
将触发一个KeyEvent
,然后大约半秒后将以非常快的速度多次触发同一个键。我想知道是否有办法防止KeyEvents
发射过快。我希望它们以一个很好的恒定速率,大约每500毫秒一次
# 1 楼答案
这是由你的操作系统控制的。但是你可以很容易地让你的处理程序检查它距离上次发射有多长时间,并做出相应的响应
# 2 楼答案
不,这完全取决于系统。你必须监听
keyPressed
事件,自己启动一个以固定速率触发事件的计时器,并在下一个keyReleased
事件时停止它试试这样:
# 3 楼答案
你可以,但诀窍不是减缓事件的触发,而是减缓处理它们的速度:
# 4 楼答案
通常按键的自动重复率由系统设置;我不知道它是否可以从Java内部更改。但是,您可以使用事件到达时间,直到最后一次做出反应(或者在按键释放后,对于快速键入的用户,这应该会清除计时器)500毫秒后才对事件做出反应