java一个键上有多个键绑定?
我正在用JFrame做一架钢琴,但我有一个小问题。 我想让钢琴的按键在按下时变成绿色,并播放一个音符
b.getInputMap(JButton.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke('q'), "playD");
b.getActionMap().put("playD", playC); //playC refers to another Action class
b.getInputMap(JButton.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke('q'), "SetBg");
b.getActionMap().put("SetBg", db); //db refers to another Action class
但是,这些方法相互覆盖。 现在,只有颜色改变,音符没有播放。 如果我删除“SetBg”方法,则音符不会播放
有办法解决这个问题吗
我的第二个问题是,我似乎无法让它工作,以知道何时真正释放了一把钥匙。
我试过.put(Keystroke.getKeyStroke("released q"), "DoSomething");
但这似乎没有任何作用
提前谢谢
# 1 楼答案
我不是这方面的专家,但我认为,如果第二个绑定不阻止第一个和所有之前的绑定,就无法在同一个键笔划上添加两个键绑定。换句话说,我相信对于每个特定的击键和输入映射,只有一个绑定是可能的
话虽如此,我还是要换一种方式: