sarici
Messages postés12Date d'inscriptionlundi 17 mars 2008StatutMembreDernière intervention27 mai 2008
-
27 avril 2008 à 02:18
didoux95
Messages postés845Date d'inscriptionmardi 25 avril 2006StatutMembreDernière intervention 1 août 2017
-
29 avril 2008 à 19:39
Bonjour,
comment faire pour mettre un chronometre dans un label??
En fait j'ai:
JFrame Fjeu = new JFrame ("Rotation mentale: Jeu");
JButton start = new JButton("Start");
JLabel chronoLabel = new JLabel ("chrono");
et je voudrais que quand je clic sur le bouton start, le chronometre tourne dans le label chronoLabel!
Est ce que cela est possible et si oui comment??
didoux95
Messages postés845Date d'inscriptionmardi 25 avril 2006StatutMembreDernière intervention 1 août 20172 27 avril 2008 à 14:00
Slt.
Tu peux aller jetter un oeil sur ma source intitulée "Chronometre" (ici => http://www.javafr.com/codes/CHRONOMETRE_46422.aspx).
Pour faire ce que tu veux faire, il faut que tu lui ajoute un TimeListener et dès que le temps à changé (timeChanged) tu récupère la nouvelle valeur du temps en faisant "getTime();".
Jette également un oeil à la classe de teste (dans la quelle il y a déjà un listener d'ajouté, il te suffit juste de remplacer le "System.out.println(...);" par "lblTime.setText(c.getTime());").
//The chronometre to use
chrono = new Chronometre();
chrono.addTimeListener(new TimeListener() {
//Here (when the time has changed)
public void timeChanged (TimeEvent evt) {
actualizeTime();
}
public void timeStarted (TimeEvent evt) {}
public void timeStoped (TimeEvent evt) {}
public void timeSuspended (TimeEvent evt) {}
public void timeResumed (TimeEvent evt) {}
public void timeReseted (TimeEvent evt) {}
public void hoursChanged (TimeEvent evt) {}
public void minutesChanged (TimeEvent evt) {}
public void secondsChanged (TimeEvent evt) {}
});
//The JLabel which allow us to display time
chronoLabel = new JLabel(" ");
chronoLabel.setAlignmentX(JLabel.CENTER);
this.getContentPane().add(chronoLabel);
//The button to start chronometre
start = new JButton("Start");
start.setPreferredSize(new Dimension(150, 25));
start.addActionListener(new ActionListener() {
public void actionPerformed (ActionEvent evt) {
startChrono();
}
});
JPanel panelButton = new JPanel(new FlowLayout());
panelButton.add(start);
this.getContentPane().add(panelButton);
//Automatic size (and show created frame)
this.pack();
this.setVisible(true);
}
/**
*To run the chronometre (this method is called when the start button is pushed).
*
**/
public void startChrono () {
chrono.start();
}
/**
*To actualize the displayed time.
*
**/
public void actualizeTime () {
chronoLabel.setText(chrono.getTime());
}
/**
*Main method (to execute the class).
*
**/
public static void main (String arg[]) {
didoux95
Messages postés845Date d'inscriptionmardi 25 avril 2006StatutMembreDernière intervention 1 août 20172 29 avril 2008 à 19:39
Pour exécuter le code que je t'ai donné tu n'as qu'as faire un copier/coller dans le bloc note, l'enregistrer sous "ChronoIntoLabel.java", le compiler et le lancer..
Pour ce qui est de la mise en oeuvre du code, l'idée c'est "je créer un chronomètre et à chaque fois que le temps change je récupère le nouveau temps pour l'afficher dans un JLabel" (d'où l'utilisation des évènement : TimeEvent et TimeListener).