背景
之前在博客中分享了SWT
托盘功能, 随之带来一个问题, 当程序最小化后无法快速唤醒, 按照平时使用软件的思路, 自然想到了注册全局快捷键, 本文介绍使用java
方式实现全局快捷键的注册.
方案
通过google
,搜到一个现成的库: jintellitype
, 使用maven
可以直接引用, 非常方便.
需求
全局注册和监听Ctrl+Shift+Alt+O
, 当本程序失去焦点时, 通过快捷键触发事件并打印hello world
实现
引入依赖
<dependency>
<groupId>com.melloware</groupId>
<artifactId>jintellitype</artifactId>
<version>1.4.1</version>
</dependency>
注册全局快捷键
private static final int HELLO_WORLD_HOTKEY_ID = 168;
static {
JIntellitype.getInstance().registerHotKey(HELLO_WORLD_HOTKEY_ID, JIntellitypeConstants.MOD_ALT + JIntellitypeConstants.MOD_CONTROL + JIntellitypeConstants.MOD_SHIFT, 'O');
}
实现监听接口com.melloware.jintellitype.HotkeyListener
@Override
public void onHotKey(int identifier) {
if (HELLO_WORLD_HOTKEY_ID == identifier) {
System.out.println("hello world");
}
}
添加监听器
JIntellitype.getInstance().addHotKeyListener(你的HotkeyListener实例);
测试
将以上片段打成可执行jar
包, 通过命令行查看