做个功能需要能随时换热键 比如截图热键等
但是我每设置一次热键 在用的时候就会多调用onHotKey 这个方法一次
比如我设置五次 就会调用五次
上代码:
/**
* destroy(解除注册系统热键)
*
* @Title: destroy
* @Description: TODO
* @param 设定文件
* @return void 返回类型
* @throws
/
public void destroy()
{
// JIntellitype.getInstance().cleanUp();
JIntellitype.getInstance().unregisterHotKey(KEY_1);
JIntellitype.getInstance().unregisterHotKey(KEY_3);
}
/*
* initHotKeyEvent(初始化注册热键)
*
* @Title: initHotKeyEvent
* @Description: TODO
* @param 设定文件
* @return void 返回类型
* @throws
*/
public void initHotKeyEvent()
{
Map hotKeyMap = null;
String p = null;
String s = null;
try
{
hotKeyMap = dataGatherService.getHotKeyAndNetWork();
if (null != hotKeyMap && !hotKeyMap.isEmpty() && hotKeyMap.size() > 0)
{
// 捕包快捷键
p = hotKeyMap.get("packetHotkey").toString();
p = p.substring(p.indexOf("+") + 1, p.length()).trim();
// 截图快捷键
s = hotKeyMap.get("screenHotkey").toString();
s = s.substring(s.indexOf("+") + 1, s.length()).trim();
}
}
catch (Exception e)
{
LOGGER.debug("获取捕包、截图快捷键异常,异常信息为:{}" , e.getMessage());
new BusinessAnalysisException(e);
}
if (StringUtils.isBlank(p))
{
// 设置捕包默认快捷键
JIntellitype.getInstance().registerHotKey(KEY_3, JIntellitype.MOD_CONTROL, (int)'Q');
}
else
{
// 设置捕包快捷键
JIntellitype.getInstance().registerHotKey(KEY_3, JIntellitype.MOD_CONTROL, (int)p.toCharArray()[0]);
}
if (StringUtils.isBlank(s))
{
// 设置截图默认快捷键
JIntellitype.getInstance().registerHotKey(KEY_1, JIntellitype.MOD_CONTROL, (int)'W');
}
else
{
JIntellitype.getInstance().registerHotKey(KEY_1, JIntellitype.MOD_CONTROL, (int)s.toCharArray()[0]);
}
// F3退出
JIntellitype.getInstance().registerHotKey(KEY_2, 0, 114);
JIntellitype.getInstance().addHotKeyListener(this);
}
就这两个方法 别处调用 先解除热键 在注册新热键 为啥会出现这个问题 求大神帮忙看看