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

如何更改输入/动作映射,以便在将动作绑定到特定键时也将动作绑定到Some Modifier +特定键?

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



    }

最佳答案

固定:更改为(char)(key-32),因此会将其分配给
  小写字符,因为当我将其设置为“ W”而不是“ w”时
  使用了shift修饰符。

本文翻译自 https://stackoverflow.com/questions/13730750/

网站遵循 CC BY-SA 4.0 协议,转载或引用请注明出处。

标签 java swing key-bindings modifiers modifier-key


相关文章:

java - 如何使用夹子减少喷漆时间?

java - 我无法确定此JRadioButton功能的语义

java - Eclipse IDE中的Emacs键绑定

java - jedis - 在JMS请求后无法连接到redis - 访问被拒绝

java - int argb颜色输出奇怪的值

java - NetBeans Apache 11的属性面板中未显示JLabel的Icon属性

python - 如何将回车键绑定到tkinter中的函数?

java - 将Maven工件部署到<container> / shared / lib以进行Eclipse调试?

java - 如何用java保存中文字符到文件?

java - 如何使用TextAction