java onHotKey 问题 求大神解救

做个功能需要能随时换热键 比如截图热键等
但是我每设置一次热键 在用的时候就会多调用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);
}

就这两个方法 别处调用 先解除热键 在注册新热键 为啥会出现这个问题 求大神帮忙看看

2个回答

设置热键的时候调用下面方法
HotKey hotKey = new HotKey();
// 先解除热键
hotKey.destroy();
// 在次绑定热键
hotKey.initHotKeyEvent();

u014091121
yujix2014 谢谢你 不过我已经解决了
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐