在Java中捕获全局按键

2024-03-12

因此,每当用户在 Swing 应用程序中的任意位置按下空格键时,我想触发一个事件(暂停/取消暂停某些媒体)。

由于有如此多的控件和面板可以具有焦点,因此实际上不可能向所有控件和面板添加关键事件(更不用说总的)。

所以我发现

KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher()

这太棒了,您可以注册全局按键预处理程序。但有一个主要问题 - 在输入字段、表格单元格等中始终会键入空格,而我显然不想触发暂停事件!

那么有什么想法吗? 也许有办法全局检测光标是否集中在允许文本输入的内容上,而不必检查所有可编辑控件的列表(呕吐!)?


我想你自己回答了这个问题 - 是的,我认为你可以找出当前具有焦点的元素,如果它是某个字段类的实例,你可以忽略用于暂停事件的空间。如果它看起来很严厉,别担心,instanceof 对于 JVM 来说非常快(无论如何,你谈论的是人类规模的事件,这对处理器来说是一个亿万年)。

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

在Java中捕获全局按键 的相关文章

  • 使用 proguard 混淆文件名

    我正在使用 proguard 和 Android Studio 混淆我的 apk 当我反编译我的apk时 我可以看到很多文件 例如aaa java aab java ETC 但我项目中的所有文件都有原始名称 有没有办法混淆我的项目的文件名
  • 以相反的顺序打印任何集合中的项目?

    我在 使用 Java 进行数据结构和问题解决 一书中遇到以下问题 编写一个例程 使用 Collections API 以相反的顺序打印任何 Collection 中的项目 不要使用 ListIterator 我不会把它放在这里 因为我想让有
  • 使用 Exec Maven 插件分叉 Java,而不使用“exec”目标

    来自文档 https www mojohaus org exec maven plugin exec exec在单独的进程中执行程序和Java程序 exec java在同一虚拟机中执行 Java 程序 我想 fork 一个 java 程序
  • 自定义列表字段点击事件

    我正在编写一个应用程序 其中我创建了用于显示列表视图的自定义列表字段 我的 CustomListField 包含连续的一个图像和文本 我正在通过单击列表字段行获取字段更改侦听器 但我也想将字段更改侦听器放在图像上 谁能告诉我我该怎么做 这是
  • Java中Gson、JsonElement、String比较

    好吧 我想知道这可能非常简单和愚蠢 但在与这种情况作斗争一段时间后 我不知道发生了什么 我正在使用 Gson 来处理一些 JSON 元素 在我的代码中的某个位置 我将 JsonObject 的 JsonElements 之一作为字符串获取
  • JOOQ 忽略具有默认值的数据库列

    看来JOOQ完全忽略了数据库列的默认值 既不会更新 ActiveRecord 对象 也不会在 INSERT 时跳过此列 相反 它尝试将其设置为 NULL 这在 NOT NULL 列上失败 Example CREATE TABLE bug f
  • getCurrentSession 在网络中休眠

    我正在使用 hibernate 和 jsp servlet 编写一个基于 Web 的应用程序 我读过有关sessionFactory getCurrentSession and sessionFactory openSession方法 我知
  • 将类转换为 JSONObject

    我有好几堂这样的课 我想将类转换为 JSONObject 格式 import java io Serializable import com google gson annotations SerializedName public cla
  • 为什么 jar 执行的通配符在 docker CMD 中不起作用?

    我有一个Dockerfile与以下CMD启动我的 Spring Boot 应用程序 FROM java 8 jre CMD java jar app file jar 当我尝试从创建的图像启动容器时 我得到 Error Unable to
  • Java AES 256 加密

    我有下面的 java 代码来加密使用 64 个字符密钥的字符串 我的问题是这会是 AES 256 加密吗 String keyString C0BAE23DF8B51807B3E17D21925FADF273A70181E1D81B8EDE
  • 如何使用双重调度来分析图形基元的交集?

    我正在分析图形基元 矩形 直线 圆形等 的交互并计算重叠 相对方向 合并等 这被引用为双重调度的一个主要示例 例如维基百科 http en wikipedia org wiki Double dispatch 自适应碰撞算法通常要求 不同的
  • 使用 Proguard 通过 Dropbox.com 库混淆 Android 应用程序

    我刚刚创建了一个需要 Dropbox com API 库的 Android 应用程序 我现在尝试在 发布 模式下构建应用程序 并希望在代码上运行混淆器以对其进行混淆 但是 每当我尝试运行 Proguard 时 都会收到以下错误 Progua
  • 类更改(例如字段添加或删除)是否保持 Serialized 的向后兼容性?

    我有一个关于 Java 序列化的问题 在这种情况下 您可能需要修改可序列化类并保持向后兼容性 我有丰富的 C 经验 所以请允许我将 Java 与 NET 进行比较 在我的Java场景中 我需要使用Java的运行时序列化机制序列化一个对象 并
  • Joshua Bloch 的构建器设计模式有何改进?

    早在 2007 年 我就读过一篇关于 Joshua Blochs 所采用的 构建器模式 的文章 以及如何修改它以改善构造函数和 setter 的过度使用 特别是当对象具有大量属性 其中大部分属性是可选的 时 本文对此设计模式进行了简要总结
  • 按降序排序映射java8 [重复]

    这个问题在这里已经有答案了 private static
  • Lombok 不适用于 Eclipse Neon

    我下载了lombok jar lombok 1 16 14 jar 并将其放入我的下载中 然后我点击这个 jar 执行正确地识别了我的 MacOS 上的 Eclipse 实例 然后我选择了我想要的实例 Lombok也在pom xml中指定
  • 在 Java 中通过 D-Bus MPRIS 访问 Clementine 实例

    我使用 Clementine 作为音乐播放器 它可以通过 D Bus 命令进行控制 在命令行上 使用 qdbus 我可以 Start Stop 暂停播放器 强制它跳过播放列表中的歌曲 检查播放列表的长度 检查播放列表中当前播放的曲目及其元数
  • 什么是 Java2D 处理程序线程?

    我创建了一个使用 Hibernate 的示例 java 应用程序 当我进行线程转储时 我观察到一个名为 Java2D Disposer 的奇怪线程 有人能告诉我该线程的功能吗 AWT 系统中的某些实体需要最终确定以释放资源 最突出的例子是j
  • Spring 作为 JNDI 提供者?

    我想使用 Spring 作为 JNDI 提供程序 这意味着我想在 Spring 上下文中配置一个 bean 可以通过 JNDI 访问该 bean 这看起来像这样
  • 设置 TreeSet 的大小

    有没有办法像数组一样对 Java 集合中的 TreeSet 进行大小限制 例如我们在数组中 anArray new int 10 数组具有固定长度 在创建数组时必须指定该长度 A TreeSet当您向其中添加元素时会自动增长 您无法设置其大

随机推荐

  • 如何以百分比形式设置 Ext.grid.ColumnModel 中的宽度?

    如何设置宽度Ext grid ColumnModel以百分比计算 使用总共 100 的列宽数字并使用 ForceFit 配置视图 例如 var grid new Ext grid GridPanel cm new Ext grid Colu
  • 我需要事务来进行连接查询吗?

    在带有连接的sql查询期间 我需要使用事务吗 我在想这样的事情 Delete table1 table2 table3 FROM table1 INNER JOIN table2 ON LEFT JOIN table3 ON WHERE t
  • 正则表达式获取捕获组的大小

    是否可以编写一个正则表达式 以便我可以稍后在同一正则表达式中引用 第一个捕获组的长度 我在这里想要实现的是捕获连续发生的情况1后面跟着连续出现的确切次数2 s 我想要类似的东西 r 1 2 length 1 where length 1 s
  • 防止 Windows 程序将 ^Z 解释为文件结尾

    我的工作是翻译一个从 C 到 C 的应用程序 该应用程序已安装在 Linux 发行版上 所以我希望 C 和 Linux 的功能 我在读取二进制文件时遇到问题 它说当它遇到一个时到达EOFctrl Z到达文件实际末尾之前的字符 bash 中宝
  • Angular 2:在模板内使用光滑的轮播

    我使用光滑的轮播作为我的角度项目中的组件 这个光滑的组件如下所示 Component selector slick slider template
  • 如何获取当前 UINavigationController 的引用?

    在 Objective C 中 获取当前 UINavigationController 引用的最佳方法是什么 我想从任何可能没有引用 UIController 委托或其他任何内容的类访问它 是否有现有的方法来获取当前的 UINavigati
  • 使用 R 中的 dplyr 和摘要向每一行添加哈希

    我需要向数据集中的每一行添加指纹 以便检查同一组的更高版本以查找差异 我知道如何为 R 中的每一行添加哈希 如下所示 data frame iris hash apply iris 1 digest 我正在学习使用dplyr由于数据集变得越
  • Jetpack Compose 是否有创建自定义过度滚动效果的工具?

    有没有办法在jetpack compose中创建过度滚动效果 像这样的事情 过度滚动效果可以通过以下方式控制LocalOverscrollConfiguration 目前有以下参数 GlobeColor 发光效果的颜色 如果平台效果是发光效
  • json.dumps \u 将 unicode 转义为 utf8

    我来自这个老讨论 https stackoverflow com questions 18337407 saving utf 8 texts in json dumps as utf8 not as u escape sequence 但该
  • 从磁盘读取的文本不符合换行符

    Using the Text widget with text that s read from disk that contains new line characters n does not go to new line Anyone
  • 从具有运行时索引的元组中选择一组值

    简短介绍我的问题 我正在尝试使用 stl 容器实现 某种 关系数据库 这只是出于娱乐 教育目的 因此不需要诸如 使用这个库 这绝对没用 之类的答案 我知道此时标题有点令人困惑 但我们会达到目的 非常欢迎改进标题的建议 我采取了一些小步骤 我
  • 如何在PHP中将大整数转换为十六进制?

    我怎样才能转换这个 93126606828970615947672892964530113131806047264927526149623497787359285987082123864065558768789161850941454200
  • (Dis)使用 Windows.Devices.Bluetooth.Rfcomm (WP8.1) 连接蓝牙设备

    在 Windows Phone Desktop 8 1 上连接和断开蓝牙设备会产生不同的结果 我一直在使用Windows Devices Bluetooth Rfcomm命名空间 我尝试连接多个具有不同蓝牙版本 类别的设备 版本 1 2 1
  • Laravel 5.2 为列上的 JSON 构建查询

    我正在使用 MySql 5 7 14 和 laravel 5 2 我的表 用户 JSON 如下所示 id 1 options religion R hllor the Lord of Light favorite color red 当我通
  • Kotlin 中的对象和数据对象

    我在 Sealed 类中编写了这 3 个游戏状态 sealed class Status object Idle Status object Active Status object GameOver Status IDE 没有任何地方建议
  • 在 Windows 中创建 Zip 文件并在 Linux 中解压 Zip 文件

    我在 Windows 下创建了一个 zip 文件 连同目录 如下所示 代码选自http www exampledepot com egs java util zip CreateZip html http www exampledepot
  • 使用循环和 if/else 的现金找零程序

    编写一个程序 允许用户输入最多 200 00 美元的现金金额 然后计算并打印以下面额 20 10 5 1 25 10 05 01 的金额 我想我已经弄清楚了如何获得面额 除法 模数 的基础知识 但 do while 和 if else 的结
  • Google Adsense 响应式广告未显示

    在下面的链接中here http syriantc com abohani index general 我有 3 个广告 右 左 标题广告 他们正在使用响应式单元 状态为 活动 问题是响应式广告没有显示 谷歌搜索显示这是由 CSS 主题引起
  • 如何在 TableView (javaFX 8) 的 TableColumn 中显示“单个条形图”?

    这是一个屏幕截图 感兴趣的是 右上部分和下部分 下半部分选择了一条规则 该规则共调用1080次 其中成功调用274次 空调用成功84次 现在我正在显示成功与总数的比率 以及空与成功的比率 我希望能够做的是废弃比率 而是使用一个图形栏来显示非
  • 在Java中捕获全局按键

    因此 每当用户在 Swing 应用程序中的任意位置按下空格键时 我想触发一个事件 暂停 取消暂停某些媒体 由于有如此多的控件和面板可以具有焦点 因此实际上不可能向所有控件和面板添加关键事件 更不用说总的 所以我发现 KeyboardFocu