gpt4 book ai didi

java - 我的 Java Swing 应用程序的快速按键率,我如何才能在管道中尽早删除事件?

转载 作者:行者123 更新时间:2023-11-30 07:38:06 28 4
gpt4 key购买 nike

一些操作系统生成 keyPressed 事件的速度超过了我的应用程序处理它们的速度。我的第一个想法是如果调用太靠近,则不执行操作,如下所示:

public void actionPerformed(ActionEvent e) {
long now = System.currentTimeMillis();
if(now - lastCall < 150) {
System.out.println("dropping event");
}
else {
lastCall = now;
}
}

不幸的是,尽管事件被丢弃,应用程序仍然锁定并在队列中建立大量事件。有没有办法可以在较低级别删除事件?我想当他们到达我上面的 Action 监听器时,已经太晚了,无法阻止应用程序锁定。感谢您的帮助!

编辑:我还应该提到,监听器是与菜单项关联的 AbstractAction 的一部分。

最佳答案

如果您的应用无法及时响应按键,我会将耗时的部分带外并在单独的线程中处理。

然后,如果需要,您可以构建一个按键队列和 bin 重复项等,或者对其执行其他智能过滤。这都是特定于应用程序的,但它的核心似乎是您在 GUI 事件处理中进行了繁重的处理。

关于java - 我的 Java Swing 应用程序的快速按键率,我如何才能在管道中尽早删除事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2143415/

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