在窗口中添加全局热键
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);