我写了addActionListener
,点击按钮,必须完成两项任务(按钮颜色变化和播放声音)。
问题是在下面的代码中,为什么播放第一个声音然后按钮颜色改变?虽然我想先发生颜色变化然后播放声音。
JButton[] btn = new JButton[D];
for (int j = 0; j < btn.length; j++) {
btn[j] = new JButton(first_ltr);
btn[j].setVisible(true);
frame.add(btn[j]);
final int a = j;
btn[a].addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals(second_ltr)) {
btn[second_ltr_btn].setBackground(Color.green);//(1)
try {
playSound_from_src("voice.wav");//(2)
} catch (IOException ex) {
Logger.getLogger(Gam1.class.getName()).log(Level.SEVERE, null, ex);
} catch (InterruptedException ex) {
Logger.getLogger(Gam1.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
btn[a].setBackground(Color.red);
btn[second_ltr_btn].setBackground(Color.green);
}
}
});
}