如何用Java中的任意顺序执行命令?

时间:2018-04-02 15:22:05

标签: java actionlistener

我写了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);
                    }
                }
            });
        }

0 个答案:

没有答案