有没有办法让键盘事件没有JFrame?
答
这可能会做你想做的。请注意,此代码正在检查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);
编辑:我想我明白你想要什么。基本上当应用程序没有焦点。如果是这样,那么你可能必须使用本地API(JNI)挂钩到OS事件中,但是这会强制你到特定的操作系统...
伤心。我希望会有一些平台无关的方式:( – Rogach 2011-01-05 21:20:09
请确保检查链接,altanis提供下面。有一点关于(可能)为什么它不是在Java中的讨论。关于也许OSX没有。没有做足够的OSX编程来知道这是真的还是假的...... – Merky 2011-01-05 21:29:04