java - 整个应用程序中的全局键绑定(bind)可通过 ctrl+h 打开 chm 文件

标签 java swing keylistener

我正在尝试在 java 程序中打开 chm 文件。现在,我希望当我在整个程序中的任何位置按下 Ctrl+h 时打开此 chm 文件。

我正在使用以下代码打开 chm 文件并且它正在工作。问题是在整个项目中使用 Ctrl+h 打开文件。

public class Testproject {    
    public static void main(String[] args) {
        try {
            Runtime.getRuntime().exec("hh.exe path of the chm file here/abc.chm");
        }
        catch(Exception ex) {
            System.out.println("exceptioin is"+ex);
        }
    }
}

最佳答案

大多数添加键绑定(bind)的方法都是在每个组件的基础上进行的,因此您必须为所有顶级窗口(可能包括对话框)创建绑定(bind),这将非常烦人。因此,您必须在事件调度系统的某个中心位置获取事件。

一种可能的方式似乎是 Toolkit.addAWTEventListener ,使用自定义监听器作为第一个参数和 KEY_EVENT_MASK作为第二个。以这种方式注册的监听器应该收到所有击键的通知,因此您可以将它们转换到 KeyEvent并检查它们是否为 Ctrl+h 并采取相应行动。

关于java - 整个应用程序中的全局键绑定(bind)可通过 ctrl+h 打开 chm 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15541563/

相关文章:

java - 使用 spring jpa 逐行获取数据库

java - 如何翻转 JFrame 及其子项?

android - 收集 Android 中的所有用户输入

gwt - 在 GWT 中单击 ESCAPE(ESC) 时关闭对话框

java - 如何在android中消失按钮

Java 字符串统计字母出现次数

java - 后续运行程序时如何保存和重新加载JTree?

java - 带条纹背景的 JTable

java - 向 main() 添加按键监听器不起作用

java - 我应该在 junit 库中断言还是抛出异常?