使用java的键盘监听事件一定要在窗口聚焦才能实现,而类似qq的全局监听何以实现?是否曾经想过让CTRL + SHIFT + G最大化桌面上的Swing应用程序,即使该应用程序没有焦点?这就需要第三方包JIntellitype实现。JIntellitype GitHub
首先进入GitHub中下载相应资源,JIntellitype64.dll和JIntellitype.dll以及com/melloware/jintellitype下的源代码。或者下载jre包和dll文件。
在自己的项目中创建一个com/melloware/jintellitype包,放入下载好的资源。
其中JIntellitype64.dll是64位系统的,而JIntellitype.dll是32位系统的,为保证系统都通用,因此两者都添加。
包的使用
注意:JIntellitype有jdk的版本限制,过大的jdk版本会导致其无法使用。官方推荐最新的版本是jdk8,而到了9版本可能就无法使用。
代码示例(Github中有详细介绍)
public class Test {
public static void main(String[] args) {
//添加快捷键
JIntellitype.getInstance().registerHotKey(1, JIntellitype.MOD_WIN, (int) 'A');//win+A为快捷键
JIntellitype.getInstance().registerHotKey(2, JIntellitype.MOD_ALT + JIntellitype.MOD_SHIFT, (int) 'B');//alt+shift+B为快捷键
//添加监听
JIntellitype.getInstance().addHotKeyListener(new HotkeyListener() {//实现HotkeyListener
public void onHotKey(int aIdentifier) {
switch (aIdentifier){//
case 1:
System.out.println("我按到了1");break;
case 2:
System.out.println("我按到了2");break;
}
}
});
//JIntellitype.getInstance().cleanUp();//清除快捷键
}
}