入力/アクション マップを変更して、アクションを特定のキーにバインドすると、アクションが修飾子+ 特定のキーにもバインドされるようにするにはどうすればよいですか?
すなわち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
}