Bonjour à tous !!

Je suis sur un programme Java qui consiste à réaliser un sondage.
Je re-créé une frame pour chaque question du sondage, en y ajoutant le son de la lecture de la question.
Mon problème vient du fait que la lecture se fait au moment de l'affichage de la frame, puis le contenu de la frame ne s'affiche qu'à la fin de la lecture audio.
J'aimerai que la frame affiche ts le contenu et aprè qu'il lise le fichier audio.
Voici mon code de la frame, du panel lisant le premier son, pis la classe controllersondesonore qui gère les actions.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
/**********************************/
public class framesondesonore extends JFrame
{
 
	public framesondesonore(int i, String user) 
    {
        setTitle("Sondage Sonore");
        setSize (600,400);
        setLocationRelativeTo(null);
 
       addWindowListener(new WindowAdapter()
        { 
            public void windowClosing(WindowEvent e)
            { 
               // Si l'utilisateur clique sur la croix windows, alors le programme se termine
               dispose();
            } 
        }); 
 
        // On interdit le redimensionnement de la Frame
        setResizable(false);
 
        // On inclut un Panel de type panelsondesonore dans la Frame
        Container contentPane=getContentPane();
        contentPane.add(new panelsondesonore(this,i,user));
 
    }    
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
 
public class panelsondesonore extends JPanel implements ActionListener
{
 
//****************Initialisation*******************//	
	private framesondesonore fenetre = null;
    private JLabel TexteQuestion;
    private String[] TableauQuestions = new String[10];
    private String[] TableauReponses = new String[4];
    private JFrame fene;
    private String reponse;
    private String id, SondageActif;
 
 
 
    private int temp;
 
//************Constructeur*************************//    
    public panelsondesonore(framesondesonore fenetre, int numero, String user) 
    {
        temp=numero;
    	this.fenetre = fenetre;
        fene = fenetre;     
        setLayout(new GridBagLayout());
        id=user;
 
        // On recherche le sondage actif à la date actuelle
        SondageActif = modelesondesonore.sondageactif();
 
        // On recherche les questions correspondantes 
        TableauQuestions = modelesondesonore.getQuestion(SondageActif);
 
 
        TableauReponses = modelesondesonore.getReponse(TableauQuestions[numero]);  
 
 
        // gbc sera la contrainte du GridBagLayout
        GridBagConstraints gbc = new GridBagConstraints();
 
        //Affichage de la question
        TexteQuestion = new JLabel (TableauQuestions[numero]);
        gbc.anchor = GridBagConstraints.NORTH;
        gbc.insets = new Insets(5,0,5,0);
        gbc.gridwidth = GridBagConstraints.REMAINDER;
        TexteQuestion.setFont(new Font("Times-Roman",Font.BOLD,20));
        add(TexteQuestion,gbc);
 
        //Bouton rep1
        JButton rep1 = new JButton("rep1");
        gbc.anchor = GridBagConstraints.WEST;        
        rep1.setBackground(Color.WHITE);
        gbc.insets = new Insets(30,5,30,5);
        gbc.gridwidth = 1;
        add(rep1,gbc);
 
 
 
        //Si c'est la première question du sondage
        if(numero==0)
        {
        	//Lecture du fichier audio indiquant le n° de la question
    		String NUM="NUM";
            int var=numero+1;
            NUM=NUM+var;
    		sound.lecture("./Sons/"+NUM+".wav");
 
    		//Lecture question
    		String s = modelesondesonore.getSon(TableauQuestions[numero]);
            sound.lecture("./Sons/"+s+"");
        }
//***********************Gestion des actions***********************//
        rep1.addActionListener((new ActionListener()
        {
 
        	public void actionPerformed(ActionEvent event)
            {
        		//On stocke la valeur de la réponse pour la requête
        		reponse=TableauReponses[0];
 
        		// On enregistre la réponse dans la BDD
        		int sondageactif = Integer.parseInt(SondageActif);
        		modelesondesonore.SauvegardeReponse(id,sondageactif,reponse,temp+1); 
 
        		//Si on n'est pas à la dernière question
            	if (temp !=9)
            	{
            		//Passage à la question suivante
            		temp++;
            	   	controllersondesonore.suivant(TableauQuestions[temp],TexteQuestion,temp,fene,id);
            	}
            	//sinon on arrête le sondage
            	else 
            	{
            		fene.dispose();
        			JFrame fenetreerreur = new framemessage("Sondage terminé !");
                    fenetreerreur.show();            		
            	}
 
 
            }
        }));     
 
 
 
    }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
/**********************************/
 
public class controllersondesonore 
{
	public static void suivant(String question,JLabel texte,int NumQuestion,JFrame fenetre,String user)
	{
 
 
		fenetre.dispose();
		JFrame nouvelle_fenetre = new framesondesonore(NumQuestion,user);
		nouvelle_fenetre.show();
 
		// Lecture du fichier audio indiquant le n° de la question
		String NUM="NUM";
        int var=NumQuestion+1;
        NUM=NUM+var;
		sound.lecture("./Sons/"+NUM+".wav");
 
		//Lecture question
		String s = modelesondesonore.getSon(question);
        sound.lecture("./Sons/"+s+"");
 
	}
	public static void repeter(String question,JLabel texte)
	{
		String s = modelesondesonore.getSon(question);
        sound.lecture("./Sons/"+s+"");
	}
}
Je vous remercie d'avance pour votre aide.
Gillou