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


如何

更改输入/操作映射,以便当我将操作绑定到特定键时,它也会将动作绑定到某个修饰符 + 特定键?

SHIFT_DOWN_MASK + specific key

所以我所有的键绑定都可以在没有修饰符的情况下工作。 我正在为键盘上的某个字母分配一个声音文件,当我按下该键时,声音文件会播放。 我也有代码来循环声音文件,切换它是否循环,并检查它是否循环。 我想拥有它,这样,除了将play()操作绑定到键之外,它还会将toggleLoop()操作绑定到操作SHIFT_DOWN_MASK + specific key

我绑定操作的位置:

    @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

    }

已修复:更改为(字符)(键-32),因此它会将其分配给 小写字符,因为当我设置"W"而不是"w"时 使用了移位修改器。

相关内容

  • 没有找到相关文章

最新更新