在窗口中添加全局热键

在窗口中添加全局热键

 

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);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值