在监听键盘键的时候如何实现组合键的监听(同时按下才被监听),如Alt+H组合键的监听,H是已经添加了助记符的字符。谢谢!

解决方案 »

  1.   

    这是ctrl+fif(ke.getModifiers() == KeyEvent.CTRL_MASK 
    && ke.getKeyCode() == KeyEvent.VK_F) {
    }
      

  2.   

    全局监听 ctrl+f        Action action = new AbstractAction() {
    public void actionPerformed(ActionEvent e) {

    }
            };       registerKeyEvent(frame, action, "Ctrl + F", KeyEvent.VK_F, KeyEvent.CTRL_MASK);       public static void registerKeyEvent(RootPaneContainer rpc, Action action, String keyName, int keyCode, int modifiers) {
    JRootPane rp = rpc.getRootPane();
    InputMap inputMap = rp.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
    inputMap.put(KeyStroke.getKeyStroke(keyCode, modifiers), keyName);
    rp.getActionMap().put(keyName, action);
    }
      

  3.   

    Java本身是做不了键盘的全局监听的(就是在失去焦点的情况下监听键盘),javaGUI中的鼠标,键盘监听器都是在组件获得焦点时才会触发的!
    所以用单纯的Java做全局监听是做不了的,不过可以使用调用jni的方式实现!有一个开源项目正是封装了jni的复杂麻烦的调用操作。我试用了一下,感觉很不错!
    我的百度博客里面有使用的情况。http://hi.baidu.com/wzwahl36/blog/item/79b47813ed0e87c5f7039efd.html