0

我将在我的应用程序中创建一个隐藏的对话框,该对话框可以通过键盘组合(例如五个连续Ctrl++ Shifti可见。
如何在整个应用程序上全局捕获键盘组合笔画?

谢谢

4

2 回答 2

2

FullScreenTest是一个示例,展示了如何在此上下文中使用Action键绑定。您可以替换KeyEvent.VK_I和相关的KeyStroke修饰符。你的动作监听器可以记录它被触发的频率。

于 2012-04-14T17:51:04.603 回答
1

我通过定义一个来解决它DispatcherListener

class DispatcherListener implements KeyEventDispatcher{
    private int level=0;

    public boolean dispatchKeyEvent(KeyEvent e) {
        if(e.getID() == KeyEvent.KEY_RELEASED){
            if(e.isControlDown() && e.isShiftDown()){
                if(this.level==0 && e.getKeyCode()==KeyEvent.VK_S){
                    level++;
                }else if(this.level==1 && e.getKeyCode()==KeyEvent.VK_H){
                    level++;
                }else if(this.level==2 && e.getKeyCode()==KeyEvent.VK_O){
                    level++;
                }else if(this.level==3 && e.getKeyCode()==KeyEvent.VK_W){
                    level=0;
                    this.showHiddenWindow((JFrame)SwingUtilities.getRoot(e.getComponent()));
                }else{
                    level=0;
                }

                //System.out.println( "level: " +  level );
            }
        }
        return false;
    }

并将其用作:

    KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
    manager.addKeyEventDispatcher( new DispatcherListener());

谢谢你们

于 2012-05-03T08:58:19.907 回答