在窗口中添加全局热键
Toolkit toolkit = Toolkit.getDefaultToolkit();
// 注册应用程序全局键盘事件, 所有的键盘事件都会被此事件监听器处理.
toolkit.addAWTEventListener(new java.awt.event.AWTEventListener() {
public void eventDispatched(AWTEvent event) {
if (event.getClass() == KeyEvent.class
|| event.getID() == KeyEvent.KEY_PRESSED) {
KeyEvent ke = ((KeyEvent) event);
IDisplay displayCompoment = null;
Class cla = null;
Object obj = null;
if (ke.getKeyCode() == KeyEvent.VK_F2
&& ke.getID() == KeyEvent.KEY_PRESSED) {
try {
if (hotkeyMap.get("F2") != null) {
obj = hotkeyMap.get("F2");
} else {
cla = Class.forName(config.getProperty("F2"));
obj = cla.newInstance();
}
if (obj != null && obj instanceof IDisplay) {
displayCompoment = (IDisplay) obj;
hotkeyMap.put("F2", displayCompoment);
displayCompoment.showWindow();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
} else if (ke.getKeyCode() == KeyEvent.VK_F5
&& ke.getID() == KeyEvent.KEY_PRESSED) {
try {
if (hotkeyMap.get("F5") != null) {
obj = hotkeyMap.get("F5");
} else {
cla = Class.forName(config.getProperty("F5"));
obj = cla.newInstance();
}
if (obj != null && obj instanceof IDisplay) {
displayCompoment = (IDisplay) obj;
hotkeyMap.put("F5", displayCompoment);
displayCompoment.showWindow();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
} else if (ke.getKeyCode() == KeyEvent.VK_ESCAPE
&& ke.getID() == KeyEvent.KEY_PRESSED) {
if (hotkeyMap.get("F2") != null) {
displayCompoment = (IDisplay) hotkeyMap.get("F2");
displayCompoment.closeWindow();
}
if (hotkeyMap.get("F5") != null) {
displayCompoment = (IDisplay) hotkeyMap.get("F5");
displayCompoment.closeWindow();
}
}
}
}
}, java.awt.AWTEvent.KEY_EVENT_MASK);