Java 键绑定中的修饰符(SHIFT+;(随机键))

Java 键绑定中的修饰符(SHIFT+;(随机键)),java,swing,key-bindings,modifiers,modifier-key,Java,Swing,Key Bindings,Modifiers,Modifier Key,如何更改输入/动作映射,以便在将动作绑定到特定键时,也将动作绑定到某个修饰符+特定键 i、 e.SHIFT\u DOWN\u掩码+特定键 因此,我所有的键绑定都在没有修饰符的情况下工作。我将声音文件分配给键盘上的某个字母,当我按下该键时,声音文件将播放。我还有代码来循环声音文件,切换它是否循环,并检查它是否循环。我希望这样,除了将play()操作绑定到键之外,它还将toggleLoop()操作绑定到操作SHIFT\u DOWN\u MASK+特定键 在我约束动作的地方: @Suppres

如何更改输入/动作映射,以便在将动作绑定到特定键时,也将动作绑定到某个修饰符+特定键

i、 e.
SHIFT\u DOWN\u掩码+特定键

因此,我所有的键绑定都在没有修饰符的情况下工作。我将声音文件分配给键盘上的某个字母,当我按下该键时,声音文件将播放。我还有代码来循环声音文件,切换它是否循环,并检查它是否循环。我希望这样,除了将
play()
操作绑定到键之外,它还将
toggleLoop()
操作绑定到操作
SHIFT\u DOWN\u MASK+特定键

在我约束动作的地方:

    @SuppressWarnings("serial")
    public void bindKey(JPanel base)
    {
        base.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(key),"play"+key);
        base.getActionMap().put("play"+key, new AbstractAction(){
            public void actionPerformed(ActionEvent e) 
            {
                System.out.println(key + " Pressed");
                play();

            }
        });

        //assigning action just the key pressed

        base.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke((char)(key-32), InputEvent.SHIFT_DOWN_MASK),"loop"+(char)(key-32));
        base.getActionMap().put("loop"+(char)(key-32), new AbstractAction(){
            public void actionPerformed(ActionEvent e) 
            {
                System.out.println(key + " toggled loop");
                toggleLoop();
                //fix toggle

            }
        });

        //^ where I try to assign action to modifier



    }
修复:更改为(char)(键-32),以便将其分配给 小写字符,因为当我 使用了移位修改器


仅共享代码中的相关问题部分。。。不是所有的类:)+1给阿尔吉·穆罕默德。请把它修好,不管怎样解决我的问题。我将向其他人公布我是如何解决的。@Alex你能将你的答案作为答案而不是问题的底部吗?使用
KeyEvent
中的虚拟键值覆盖绝对数字值,这将防止出现任何问题change@Alex隐马尔可夫模型。。在keyBindings中,考虑小写/大写有点偏离范围:它总是一个单键加上(可选)一个修饰符。该组合如何/是否映射到keyChar是无关紧要的。因此,如果这是“解决方案”,那么设置中的某些东西闻起来很可疑:-)是/如何获得密钥?@kleopatra我从上次单击的按钮的“获取文本”中获取密钥。所以keyboardBtns[i].getText().charAt(0),它可能不是很有效,但我只是想得到一个工作原型,我可以回去,让它更有效/更符合逻辑。