Chronomètre

qhhu Messages postés 66 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 octobre 2009 - 29 janv. 2006 à 15:16
qhhu Messages postés 66 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 octobre 2009 - 29 janv. 2006 à 19:19
Salut Tout le monde !
J'ai un problème avec un petit chronomètre que j'ai fabriqué.
Quand j'appuie sur le bouton Start, il reste appuyé et rien ne se passe. Pourquoi??
Voici le code:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class chrono extends JFrame implements ActionListener{
int heures = 0;
int minutes = 0;
int secondes = 0;
int centiemes = 0;
int bubu = 0;

JLabel heures_lab = new JLabel("0"+heures+"h ");
JLabel minutes_lab = new JLabel("0"+minutes+"m ");
JLabel secondes_lab = new JLabel("0"+secondes+"s ");
JLabel centiemes_lab = new JLabel("0"+centiemes+"");

JButton start = new JButton("Start");
JButton stop = new JButton("Stop");
JButton zero = new JButton("Remise à zéro");
public chrono(){
super("Chronomètre (by Olivier)");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel pane1 = new JPanel();
pane1.add(heures_lab);
pane1.add(minutes_lab);
pane1.add(secondes_lab);
pane1.add(centiemes_lab);


stop.addActionListener(this);
start.addActionListener(this);
zero.addActionListener(this);

pane1.add(start);
pane1.add(stop);
pane1.add(zero);
add(pane1);
setSize(300,100);
setVisible(true);
}
public void run(){
while(bubu<1){
try{
Thread.sleep(10);
}
catch(InterruptedException e){};
centiemes++;
if(centiemes == 100){
centiemes=0;
secondes++;
}
if(secondes == 60){
secondes=0;
minutes++;
}
if(minutes == 60){
minutes=0;
heures++;
}
if(centiemes<10)
centiemes_lab.setText("0"+centiemes+"");
else
centiemes_lab.setText(centiemes+"");
if(secondes<10)
secondes_lab.setText("0"+secondes+"s ");
else
secondes_lab.setText(secondes+"s ");
if(minutes<10)
minutes_lab.setText("0"+minutes+"m ");
else
minutes_lab.setText(minutes+"m ");
if(heures<10)
heures_lab.setText("0"+heures+"h ");
else
heures_lab.setText(heures+"h ");


}
}
public void actionPerformed(ActionEvent event){
Object source = event.getSource();
if(source == start){
try{
Thread.sleep(30);
}
catch(InterruptedException e){};
run();
}
if(source == stop){
bubu = 1;
}
if(source == zero){
bubu = 1;
heures = 0;
minutes = 0;
secondes = 0;
centiemes = 0;
heures_lab.setText("0"+heures+"h ");
minutes_lab.setText("0"+minutes+"m ");
secondes_lab.setText("0"+secondes+"s ");
centiemes_lab.setText("0"+centiemes+"");
}


}
public static void main(String[] arguments){
chrono ch = new chrono();

}
}
Merci d'avance ...

3 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
29 janv. 2006 à 16:21
Salut,

Tu n'as pas l'impression que quelque chose cloche avec ceci :
while(bubu<1){

Sachant que tu ne change jamais la valeur de bubu dans ta boucle...

Ton blocage vient sûrement du fait de cette boucle !

_____________________________________________________________________
0
kaloway Messages postés 358 Date d'inscription jeudi 24 octobre 2002 Statut Membre Dernière intervention 13 avril 2020
29 janv. 2006 à 17:32
en complément du commentaire de Darksidious .
je ne vois à aucun moment que tu changes
de valeur les variables suivantes : centiemes.
secondes.
minutes.
0
qhhu Messages postés 66 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 octobre 2009
29 janv. 2006 à 19:19
Mais alors que faire pour arriver au résultat voulu ?? Que me conseillez vous ?
0
Rejoignez-nous