0

キーバインディングで修飾子を使用する方法は理解していますCTRL_DOWN_MASK + some keyが、特定のアクションをコントロール、文字 (つまり「W」)、および上矢印がすべて押されたときにバインドできるようにしたいと考えています。のようなものCTRL_DOWN_MASK + some key + Up Arrow

これを使用して、特定のサウンド クリップの音量を変更します。したがって、CTRL_DOWN_MASK + W + Up Arrowすべて押すと、W JButton に割り当てられたサウンド クリップの音量が上がり、サウンド クリップCTRL_DOWN_MASK + W + Down Arrowの音量が下がると、音量が下がります。

    public void bindKey(JPanel base)
    {

        base.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(key, InputEvent.CTRL_DOWN_MASK),"Volume"+key);
        base.getActionMap().put("Volume"+key, new AbstractAction(){
            public void actionPerformed(ActionEvent e) 
            {
                //if(Up Arrow is being pressed.)
                setGain(currentGain() + 1.0f);

                //if(Down Arrow is being pressed.)
                setGain(currentGain() - 1.0f);
            }
        });
     }
4

1 に答える 1

3

もっと手が必要だろう...それが修飾子とメインキーに限定されている理由だと思います。ctrl+w でインターフェイスが起動し、上下に押して音量を調整できると考えたことはありますか?

もう 1 つのオプションは、ctrl+w キーと ctrl+up キーの両方にキー バインドをマップすることです。その後、両方がアクティブなときはいつでも、アクションを実行してください。フラグを設定し、2 つのマッピング (押されたものと解放されたもの) が必要です。マッピング用のキーのセットアップの詳細については、Keystroke クラスを参照してください。

于 2012-12-20T19:58:17.410 に答える