我正在制作一个鼓应用程序,我使用了KeyBindings,所以我可以用键盘触发鼓的声音。
例如,我的btnBassDrm的关键触发器是'B'。我想要做的是,当我按下'B'时,btnBassDrum(like in mouseClicked event)中按下的按钮的动画也会触发。所以实际上,你看起来真的在打鼓。
我有什么办法让这件事成为可能吗?谢谢各位!)
更多信息:
以下是我如何使用键绑定:
我有一个名为KeyBind的类,它有6个返回类型操作的方法
public static Action getSnareAction(){
Action snareAction = new AbstractAction(){
@Override
public void actionPerformed(ActionEvent e){
try{
music=new FileInputStream(new File(Sound.snareSound));
AudioStream audios=new AudioStream(music);
AudioPlayer.player.start(audios);
}
catch(Exception ex){
JOptionPane.showMessageDialog(null,ex.getLocalizedMessage());
}
}
};
return snareAction;
}然后,在我的Mainform中,我有6个方法也执行绑定。
public void snareActionKeyBind(){
snareDrumAction = KeyBind.getSnareAction();
InputMap inputMap = btnSnareDrum.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
inputMap.put(KeyStroke.getKeyStroke("E"), "hitSnareDrum");
btnSnareDrum.getActionMap().put("hitSnareDrum", snareDrumAction);
}然后在Mainform的构造函数中调用这6个方法
public FreePlayForm() {
initComponents();
bassActionKeyBind();
crashActionKeyBind();
snareActionKeyBind();
hihatActionKeyBind();
rackTomActionKeyBind();
floorTomActionKeyBind();
}我的表单是这样的:

每当我敲击琴键或弹奏或什么都不做的时候,情况就会是这样。它没有“被按下”的动画,就像你点击它时一样。这就是我现在的目标,那就是当你按下按键时,你就可以“按下动画”了。
发布于 2016-03-16 15:20:55
创建一个Action。操作可以用作按钮的ActionListener,也可以用于给定KeyStroke的键绑定。
在Swing教程中,您可以阅读以下章节:
您可以签出:将单个动作侦听器附加到所有按钮作为一个包含操作和键绑定的示例。
编辑:
这就是我现在的目标,那就是当你按下按键时,你就可以“按下动画”了。
然后,在针对键绑定的Action绑定中,您需要在相关按钮上调用doClick(),而不是共享操作。因此,对于每个按钮,您需要2个操作
https://stackoverflow.com/questions/36027554
复制相似问题