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

2023-12-08

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

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

谢谢。


所以我遇到的问题 似乎是一个仅发生的错误 在Linux上

是的,这是一个 Linux 问题。

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

这个问题经常被问到,但我从未见过一个好的解决方案。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何停止 Swing 中重复的 keyPressed() / keyReleased() 事件 的相关文章

随机推荐

  • 编译错误“类文件版本错误 52.0,应该是 50.0”

    我正在尝试编译我的项目智能IDEA 我正在外部 JAR 文件中使用一个类 并且在编译时收到以下错误 Class file has wrong version 52 0 should be 50 0 据我所知 它是说 JAR 文件是用比 In
  • Textmate 代码完成问题

    我知道 ESC 键可以完成代码 但是有没有办法获得一个弹出窗口 我猜是工具提示 来显示一段代码的所有可能选择 举个例子 在编写 Javascript 时获取可用操作的列表会很好 我使用过的其他应用程序 例如 Coda 可以执行此操作 我想看
  • 为 gmail imap 生成有效的 oauth 令牌和秘密?

    我一直在到处寻找 Java 端口xoauth py 因为我真的想在我的 java web 应用程序中使用相同的身份验证过程 我尝试使用 GoogleOAuthHelper 生成令牌和秘密 但是当我将它们插入到谷歌邮件java示例 我收到错误
  • 将 Numpy 数组列表转换为单个 Numpy 数组,无需复制数据

    我正在使用 Python OpenCV 读取视频数据 并希望存储 K 个帧 目前 我有执行以下操作的循环 伪代码 frame list 1 K frame buffer list map ReadFrameNumber frame list
  • 如何让 Laravel whereIn 不自动排序

    我的数组来自 temp is Array 0 gt 22 1 gt 26 2 gt 20 3 gt 24 or 22 26 20 24 当我使用whereIn像这样 robjeks DB table objek gt whereIn id
  • React Admin:如何传递状态进行转换

    我有一个用于创建媒体的组件 它首先将媒体上传到 S3 然后将返回的值放入组件的状态中 import Create ReferenceInput SelectInput SimpleForm TextInput from react admi
  • 使用触发器插入后更新另一个表?

    我目前正在创建某种库存系统 I have tbl1我在哪里保存项目 在tbl1 我有专栏qty或剩余可用库存 tbl1 id product qty 1 mouse 10 2 keyboard 15 3 monitor 8 我也有桌子tbl
  • T-SQL 多重分组

    我有以下数据 Product Price StartDate EndDate Apples 4 9 2010 03 01 00 00 00 000 2010 03 01 00 00 00 000 Apples 4 9 2010 03 02
  • 如何在SQL*Plus中获取Oracle建表语句

    我有一个表存在于 Oracle 数据库中 但没有显示在 SQL Developer 工具的表列表中 但是 如果我转到 SQL Plus 并执行 select table name from user tables 我列出了表格 如果我输入
  • 如何让Oracle过程返回结果集

    SQL Server 过程可以返回结果集 我有一张桌子emp emp id emp name 以下过程将返回与所提供的姓名匹配的员工列表 CREATE OR REPLACE PROCEDURE get employee by name na
  • laravel 4:URL::route 与 jquery

    作为新的 laravel 用户 我试图通过 laravel URL class 构建 ajax 调用 url ajax url URL route getUser 3 success function results alert resul
  • CMAKE 中添加 -fPIC 编译器选项的惯用方法是什么?

    我至少遇到过 3 种方法来做到这一点 我想知道哪种方法是惯用的 这几乎需要对任何静态库普遍完成 我很惊讶 CMake 中的 Makefile 生成器不会自动将其添加到静态库中 除非我错过了什么 target compile options
  • IValueConverter 的异步实现

    我有一个异步方法 我想在一个内部触发IValueConverter 有没有比通过调用强制同步更好的方法Result财产 public async Task Convert object value Type targetType objec
  • Python 2.6 与 2.7 中的浮点行为

    所以我打开了 Python 2 6 解释器 得到了这个 Python 2 6 6 r266 84292 Nov 22 2013 12 16 22 GCC 4 4 7 20120313 Red Hat 4 4 7 4 on linux2 Ty
  • Angular 的 Promise 是异步的吗?

    我可能错过了有关 Angular 承诺的一些内容 但我想知道一些事情 承诺是异步的吗 我不确定 异步 这个词是否正确 但让我解释一下 在我的代码中 我使用 Promise 执行一个非常大的过程 读取和写入数百个大文件 同时显示加载栏以观察该
  • Java:将两个json对象与主键合并在一起

    假设内存中有两个 JSONObject 数组 每个对象都有一个在两个数组中相似的键 Array 1 name Big Melons Co location Inner City Dubai id 1A name Pear Flavored
  • Jenkins - 如何构建特定分支

    这并不像仅仅进行参数化构建那么简单 我已经有了一个特定的构建过程 每当这些分支被推送到 GitHub 时就会构建和部署 所以如果我刚刚推动develop它构建成功 我如何触发手动构建并将其拉出feature my new feature 不
  • 检查字符串中是否有坏词? [复制]

    这个问题在这里已经有答案了 可能的重复 测试字符串中某些单词的有效方法 我想检查一个字符串是否包含以下任何单词 禁令 不良 用户 通行证 堆栈 名称 html 如果它包含任何单词 我需要回显坏单词的数量 str Hello my name
  • 阻止 Tumblr 将 JS 和 CSS 文件添加到主题中

    Tumblr 的博客中充斥着大量的 JS 和 CSS 文件 我不知道这些文件是否是必需的或只是有用 这是其中的列表 JS tumblelog js 和 pre tumblelog js gt 看起来这是 Tumblr JS API 但我们需
  • 如何停止 Swing 中重复的 keyPressed() / keyReleased() 事件

    所以我遇到的问题似乎是仅在 Linux 上发生的错误 我试图让我的摇摆应用程序记录按下某个键的时间 然后检测该键何时被释放 现在这不应该成为问题 因为按键监听器应该为我处理这个问题 问题是 当我按住按键时 我会收到大量重复的 keyPres