Bonjour à tous,
je vous présente rapidement mon programme :
j'ai 2 classes : Fenetre.class et Sound.class (Test.class ne comporte que le main)

Sound.java :
crée un thread, jouant ainsi la musique de manière indépendante.

code :
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
import java.net.*;
import java.applet.AudioClip;
 
 
class SonWav extends java.applet.Applet {
 
        public boolean play=true;
        AudioClip AD;
 
 
 
        /**************************************************************************************************
         * joue un son fichierSon 
         */
	public SonWav(final String fichierSon) {
 
            try{
                new Thread(new Runnable() {
 
 public void run() {
 
 
                		URL adrFichierSon = getClass().getResource(fichierSon);
 
                		AD = newAudioClip(adrFichierSon);
                		AD.play(); 
 
 
                   }
 
                }).start();
 
 
 
		Thread.sleep(5000); //pause pour lire entierement le wav 5 secondes
            }
 
            catch(Exception ex) {   
                System.out.println("Impossible de lire le fichier son !");
            }
	}
 
 
 
}
Fenetre.java :
crée le conteneur, les boutons, et notemment une checkbox qui indique si on active ou non la musique (booléen "musique")

code :
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
 
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
 
import javax.imageio.ImageIO;
import javax.swing.*;
 
 
class Fenetre4 extends JFrame implements ActionListener
{
 
 private JButton b_jouer;
 private JButton b_option;
 private JButton b_quitter;
 private JLabel checkb_son;
 private JCheckBox c_musique;
 private JTextField t_joueurs;
 private JButton b_ok;
 
 private boolean flag = false ;
 public int nb_joueurs=0 ;
 public boolean musique = true ;
 public boolean jouer = false ;
 
public Fenetre4()
 {
 
 
  setTitle("Accueil");
  setBounds(150,150,940,640);
  Container contenu= getContentPane();
  contenu.setBackground(Color.cyan);
  contenu.setLayout(new OverlayLayout(contenu));
 
  this.setResizable(false); 
 
 
  JLabel imagedefond= new JLabel();
  ImageIcon image = new ImageIcon(this.getClass().getResource("risk.jpg" ) ); 
  imagedefond.setIcon(image);
 
 
  contenu.add(imagedefond);
  JPanel avant = new JPanel();
  avant.setOpaque(false);
  contenu.add(avant);
 
 
  ImageIcon icon = new ImageIcon(this.getClass().getResource("jouer.jpg" )); 
  b_jouer = new JButton(icon);
  b_jouer.setBounds(30,120,80,25);
  avant.add(b_jouer);
  b_jouer.addActionListener(this); 
 
  ImageIcon icon2 = new ImageIcon(this.getClass().getResource("options.jpg" )); 
  b_option = new JButton(icon2);
  b_option.setBounds(30,200,120,60);
  avant.add(b_option);
  b_option.addActionListener(this);
 
  ImageIcon icon3 = new ImageIcon(this.getClass().getResource("quitter.jpg" )); 
  b_quitter = new JButton(icon3);
  b_quitter.setBounds(30,280,80,25);
  avant.add(b_quitter);
  b_quitter.addActionListener(this);
 
  c_musique = new JCheckBox("Musique de fond");
  c_musique.setBounds(100,10,120,25);
  avant.add(c_musique);
  c_musique.setVisible(false);
  c_musique.setSelected(true);
  c_musique.addActionListener(this);
 
  t_joueurs = new JTextField("Nombre de joueurs ?");
  t_joueurs.setBounds(100,10,120,25);
  avant.add(t_joueurs);
  t_joueurs.setVisible(false);
  t_joueurs.addActionListener(this);
 
  b_ok = new JButton("ok");
  b_ok.setBounds(30,200,120,60);
  avant.add(b_ok);
  b_ok.setVisible(false);
  b_ok.addActionListener(this);
 
  this.setVisible(true);
 
 }
 
 
 
 
 public void actionPerformed(ActionEvent e)
 {
	 Object  source=e.getSource();
 
	 if  (source == b_jouer){
 
		 jouer = true ;
		 System.out.println("JOUER !");
 
	 }
 
     else if (source==b_option && flag == false)
     {
         System.out.println("OPTIONS");
         b_option.setVisible(true);
         c_musique.setVisible(true);
         t_joueurs.setVisible(true);
         b_ok.setVisible(true);
         b_quitter.setVisible(false);
         b_jouer.setVisible(false);
         flag = true ;
         jouer = false ;
     }
 
     else if (source==b_option && flag == true)
     {
         System.out.println("ACCUEIL");
         b_option.setVisible(true);
         c_musique.setVisible(false);
         b_quitter.setVisible(true);
         b_jouer.setVisible(true);
         t_joueurs.setVisible(false);
         b_ok.setVisible(false);
         flag = false ;
         jouer = false ;
 
     }
 
 
     else if (source==b_ok)
     {
    	nb_joueurs = Integer.parseInt(t_joueurs.getText()); 
     }
 
     else if  (source == c_musique)
     {
        musique = c_musique.isSelected();
	 }
 
     else {
    	 System.out.println("QUITTER\nA bientot !\nnb_joueurs = "+nb_joueurs+" "+musique);
 
    	 try {
    			Thread.sleep(1000);
 
    	 } 
    	 catch (InterruptedException e1) {
 
    			e1.printStackTrace();
    		}
 
    		System.exit(1);
 
 
     }
 
 
 }
 
 
}
Et enfin mon Test.java :
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
 
 
public class Test {
 
        public static void main(String[] args){
 
      boolean jouer = false ;  	
 
        	Fenetre4 fen = new Fenetre4();
        //	new SonWav("musique.wav");
 
 
       do{}
 
       while(fen.jouer == false);
 
 
        	if (fen.musique == true)
        		new SonWav("musique.wav");
 
 
 
 
 
 
        }
}

Je bute sur un truc très con : comment déterminer (en fonction de ma checkbox) si l'on lance ou non la musique ?

Merci d'avance