Rog*_*ach 4 java keyboard swing event-listener keyboard-events
我想让我的程序在用户按下某个快捷方式时取消隐藏主窗口。有没有办法获取全局关键事件,而不仅仅是焦点在应用程序框架内时发生的事件?
小智 5
这可能会做你想做的。请注意,此代码正在检查 Ctr-F 击键。我使用此代码从应用程序中的任何内容打开查找对话框。我很确定该应用程序必须具有焦点。至少要尝试一些东西......
AWTEventListener listener = new AWTEventListener() {
@Override
public void eventDispatched(AWTEvent event) {
try {
KeyEvent evt = (KeyEvent)event;
if(evt.getID() == KeyEvent.KEY_PRESSED && evt.getModifiers() == KeyEvent.CTRL_MASK && evt.getKeyCode() == KeyEvent.VK_F) {
}
}
catch(Exception e) {
e.printStackTrace();
}
}
};
Toolkit.getDefaultToolkit().addAWTEventListener(listener, AWTEvent.KEY_EVENT_MASK);
Run Code Online (Sandbox Code Playgroud)
编辑:我想我明白你想要什么。基本上当应用程序没有焦点时。如果是这样,那么您可能必须使用本机 API (JNI) 连接到操作系统事件,但这会迫使您使用特定的操作系统...