File audio in java

Jaco_

Nuovo Utente
19 Giu 2019
10
0
1
Qualcuno saprebbe dirmi perchè quando avvio il programma e premo il bottone 'go' viene riprodotto il file audio prima dei comandi scritti in precedenza.
Qua sotto c'è il codice.
Codice:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.File;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;

public class Moooseca extends JFrame{

  public JPanel pannello = new JPanel();
  public JPanel pannello1 = new JPanel();
  public JPanel pannello2 = new JPanel();
  public JPanel pannello3 = new JPanel();
  public JPanel pannello4 = new JPanel();
  public JTextField a = new JTextField(45);
  public JTextField b = new JTextField(45);
  public JLabel ris = new JLabel("");
  public JLabel no = new JLabel("sugg");
  public JLabel nno = new JLabel("risposta");
  public JButton passo = new JButton("passo");
  public JButton conf = new JButton("confermo");
  public JButton go = new JButton("Inizia gioco");
  public JButton aiuto = new JButton("Premi per continuare");
  public GridLayout l = new GridLayout(3, 1, 1, 1);
  public GridLayout l1 = new GridLayout(2, 2, 1, 1);
  public GridLayout l2 = new GridLayout(2, 1, 1, 1);
  public GridLayout l3 = new GridLayout(3, 1, 1, 1);
  public GridLayout l4 = new GridLayout(1, 1, 1, 1);
  public File popo = new File("");
  public File canz1 = new File("Estate.wav"); //0
    public File canz2 = new File("Veleno7.wav"); //1
    public File canz3 = new File("OldTownRoad.wav"); //2
  public File canz4 = new File("Another-Brick-in-the-wall.wav"); //3
  public File canz5 = new File("DoveQuando.wav"); //4
  public Clip sd;
  public int cont = 0;
  public int cvet = 0;
  public int p = 0;
  public int controllo = 0;
  public int v[] = new int[10];
  public String vet[] ={" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "};
  public String v1[] ={"estate addosso", "veleno7", "oldtownroad", "another brick in the wall", "dove e quando", " ", " ", " ", " ", " "};

  public Moooseca(){
    this.setTitle("Moooseca");
    this.setBounds(200, 200, 400, 400);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    pannello.setLayout(l);
    pannello2.setLayout(l1);
    pannello1.setLayout(l2);
    pannello3.setLayout(l3);
    pannello4.setLayout(l4);

    pannello.add(pannello3);
    pannello3.add(ris);
    pannello3.add(no);
    pannello3.add(nno);

    pannello.add(pannello1);
    pannello1.add(a);
    pannello1.add(b);

    pannello.add(pannello2);
    pannello2.add(conf);
    pannello2.add(passo);
    pannello2.add(go);
    pannello2.add(aiuto);

    passo.setVisible(false);
    conf.setVisible(false);
    aiuto.setVisible(false);
    a.setEditable(false);
    b.setEditable(false);

    this.setContentPane(pannello);
        this.setVisible(true);

    go.addMouseListener(new Ascoltatore());
    conf.addMouseListener(new Ascoltatore2());

  }

  public static void main(String arg[]){
   Moooseca ogg = new Moooseca();
  }

  class Ascoltatore extends MouseAdapter{
        public void mouseClicked(MouseEvent oggettoEvento){
          int inutile = 0;
          if(inutile == 0){
          ris.setText("N:"+cvet+" DOMANDE "+"1:"+vet[0]+" 2:"+vet[1]+" 3:"+vet[2]+" 4:"+vet[3]+" 5:"+vet[4]+" 6:"+vet[5]+" 7:"+vet[6]+" 8:"+vet[7]+" 9:"+vet[8]+" 10:");
          passo.setVisible(true);
          conf.setVisible(true);
          aiuto.setVisible(true);
          a.setEditable(true);
          b.setEditable(true);
          inutile = 1;
        }

          if(inutile == 1){
          if(controllo == 0){
          cont = (int)(Math.random()*5);
          v[cvet] = cont;
          p = cvet;
          cvet++;
          controllo++;
          switch(cont){
            case 0:
              popo = canz1;
              break;
            case 1:
              popo = canz2;
              break;
            case 2:
              popo = canz3;
              break;
            case 3:
              popo = canz4;
              break;
            case 4:
              popo = canz5;
              break;

            default:
              JOptionPane.showMessageDialog(null, "Errore!");
          }
          try{

            sd = AudioSystem.getClip();
            sd.open(AudioSystem.getAudioInputStream(popo));
            sd.start();

            Thread.sleep(sd.getMicrosecondLength()/ 1000);

            sd.close();
          } catch (Exception e){}
          }else{
            JOptionPane.showMessageDialog(null, "Questo pulsante e' disabilitato per tutta la durata del gioco");
          }
        }
        }
    }

  class Ascoltatore2 extends MouseAdapter{
        public void mouseClicked(MouseEvent oggettoEvento){
      if(oggettoEvento.getSource() == conf){

      String g;
      int n=0;
      g = a.getText();
      if(g == v1[p]){
          vet[p] = "V";
          ris.setText("N:"+cvet+" DOMANDE "+"1:"+vet[0]+"2:"+vet[1]+"3:"+vet[2]+"4:"+vet[3]+"5:"+vet[4]+"6:"+vet[5]+"7:"+vet[6]+"8:"+vet[7]+"9:"+vet[8]+"10:"+vet[9]);
      }else{
        vet[p] = "F";
        ris.setText("N:"+cvet+" DOMANDE "+"1:"+vet[0]+"2:"+vet[1]+"3:"+vet[2]+"4:"+vet[3]+"5:"+vet[4]+"6:"+vet[5]+"7:"+vet[6]+"8:"+vet[7]+"9:"+vet[8]+"10:"+vet[9]);
      }

      int f = 0;
      if(cvet<10){
      cont = (int)(Math.random()*5);
      f = cont;
      for(int i=0;i<cvet;i++){
        if(f == v[i]){
          cont = (int)(Math.random()*5);
          f = cont;
          i = -1;
        }
      }
      v[cvet] = cont;
      p = cvet;
      cvet++;
    }
            switch(cont){
                case 0:
                    popo = canz1;
                    break;
                case 1:
                    popo = canz2;
                    break;
                case 2:
                    popo = canz3;
                    break;
        case 3:
                  popo = canz4;
                  break;
        case 4:
                popo = canz5;
                break;

                default:
                    JOptionPane.showMessageDialog(null, "Errore!");
            }

            try{

                sd = AudioSystem.getClip();
                sd.open(AudioSystem.getAudioInputStream(popo));
                sd.start();

                Thread.sleep(sd.getMicrosecondLength()/ 1000);

                sd.close();
            } catch (Exception e){}