Prob de chronometre en java

ludodock Messages postés 2 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 21 mars 2005 - 21 mars 2005 à 10:14
ludodock Messages postés 2 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 21 mars 2005 - 21 mars 2005 à 20:50
Voilà mon probleme, je fait un chronometre et je voudrais lorsque j'appuie sur Pause il continue a compter mais laisse l'affichage du temp fixe, puis relancer le chrono lorsque je reclick sur Start mais je vois pa comment je pourrais faire.

Prog:

/*
* Chrono.java
*
* Created on 20 mars 2005, 17:29
*/


/**
*
* @author Ludo
*/
import java.lang.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.event.*;


public class Chrono
{
public static int minute=0,seconde=0,dixiemeseconde=0;
public static void main(String[] args)
{
/* Le timer */
int delais=100;
ActionListener tache_timer;


/* création des composants */
final JLabel l = new JLabel(minute+":"+seconde+":"+dixiemeseconde); /* déclarer final car une classe interne va acceder à ce composant */
final JButton debut = new JButton("Go");
JButton fin = new JButton("Remise à zéro");
JFrame fenetre = new JFrame("Chronomètre");
JPanel Panel1 = new JPanel();
l.setFont(new Font("Arial",Font.BOLD,240));/* rafraichir le label */
/* Action réalisé par le timer */
tache_timer= new ActionListener()
{

public void actionPerformed(ActionEvent e1)
{
dixiemeseconde++;
if(dixiemeseconde==10)
{
dixiemeseconde=0;
seconde++;
}
if(seconde==60)
{
seconde=0;
minute++;
}
l.setText(minute+":"+seconde+":"+dixiemeseconde);
l.setFont(new Font("Arial",Font.BOLD,240));/* rafraichir le label */
}
};
/* instanciation du timer */
final Timer timer1= new Timer(delais,tache_timer);



/* Ajout des composants aux conteneurs avec formatage */
Panel1.add(debut);
Panel1.add(fin);
l.setBorder(new EmptyBorder(100,100,100,100));
fenetre.getContentPane().add(l,"Center");
fenetre.getContentPane().add(Panel1,"South");


/* Action provoqué par l'utilisateur */
/* Lors du clic sur le bouton debut */
debut.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String texte;
texte=debut.getText();
if(texte.compareTo("Go")==0)
{
debut.setText("Pause ");
timer1.start();

}

else if(texte.compareTo("Pause ")==0)
{
debut.setText("Go");
timer1.stop();
}
}
});
/* Lors du clic sur le bouton fin */
fin.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String texte;
texte=debut.getText();
if(texte.compareTo("Go")==0)
{
minute=0;
seconde=0;
dixiemeseconde=0;
debut.setText("Go");
l.setText(minute+":"+seconde+":"+dixiemeseconde);
l.setFont(new Font("Arial",Font.BOLD,240)); /*rafraichir le label */
}
}
});


/* Afficher l'ihm */
fenetre.pack();
fenetre.setLocation(200,100); /* Déplacer la fenetre à ce nouvel emplacement */
fenetre.setSize(950,700); /* dimension de la fenetre */
fenetre.show();
}
}

2 réponses

cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
21 mars 2005 à 20:47
Salut



Pour des problèmes en mettant le code entier c'est pas super surtout sans bonjour ni merci ...

Cela n'est pas un problème technique mais plus un problème de réflexion , m'enfin voilà une idée que tu pourrais utiliser :

mettre un flag pour que le temps s'arrête (affichage) et fait le
repartir après ... tu peux utiliser un Timer et TimerTask pour régler
ce petit problème ...



@+
0
ludodock Messages postés 2 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 21 mars 2005
21 mars 2005 à 20:50
Oui désolé, j'en oublie les politesses, je vais essayé cette idée merci bcp
0
Rejoignez-nous