Pb avec horloge en java

guif44 Messages postés 1 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 6 juin 2005 - 6 juin 2005 à 11:47
cs_papillon2000 Messages postés 94 Date d'inscription dimanche 30 avril 2006 Statut Membre Dernière intervention 21 juin 2010 - 4 févr. 2009 à 19:51
Bonjour, je travail actuellement sur un programme nécessitant une horloge (affichage heure type: 11:48:34).

J'arrive bien à récuperer les heures, minutes et secondes, le problème c'est que ça reste figé.

J'ai repproduit une petite application affichant l'heure dans un label,
reproduisant ce que j'ai fait dans mon programme. voila de quoi il en
retourne:





package heure;

import java.util.Calendar;

import javax.swing.*;

import java.awt.event.*;

import java.awt.*;

import java.lang.*;



/**

*

* @author Guillaume Evain

* Test Horloge

*/

public class heure implements Runnable{



/** Creates a new instance of heure */

public static void main(String[] argv) {

Calendar now = Calendar.getInstance();

int hh = now.get(Calendar.HOUR_OF_DAY);

int mm = now.get(Calendar.MINUTE);

int ss = now.get(Calendar.SECOND);

javax.swing.JFrame window = new javax.swing.JFrame("Une fenêtre");

window.addWindowListener(new java.awt.event.WindowAdapter() {

public void windowClosing(java.awt.event.WindowEvent e) {

System.exit(0);

}});

javax.swing.JLabel label = new javax.swing.JLabel(hh + ":" + mm + ":" + ss);

window.getContentPane().add(label);

window.setBounds(100, 100, 300, 200);

window.setVisible(true);

}

final static long tempo = 500;

volatile Thread timer;

public void run() {

try {

Thread t = Thread.currentThread();

while (timer == t) { // En cas de start() multiples

t.sleep(tempo);



// Appel à la méthode paint() sur le bon contexte graphique

}

} catch (InterruptedException e) { }

}



/**

* Demande l'arrêt du processus léger de mise à jour.

*/

public void stop()

{

timer.interrupt();

}



}

Si quelqu'un avait la solution, ça serait vraiment sympas.

Merci d'avance



Guif

2 réponses

cs_mep Messages postés 86 Date d'inscription vendredi 7 mai 2004 Statut Membre Dernière intervention 3 septembre 2008 4
6 juin 2005 à 11:55
voila ce que moi j'ai fait dans ma jeunesse :



La classe threadé qui refresh l'heure





package Horloge;

import java.util.Date;



import javax.swing.JLabel;



/*

* Created on 18 janv. 2005

*

* TODO To change the template for this generated file go to

* Window - Preferences - Java - Code Style - Code Templates

*/



/**

* @author mep

*

* TODO To change the template for this generated type comment go to

* Window - Preferences - Java - Code Style - Code Templates

*/

public class Horloge extends Thread {



JLabel zoneHorloge;





public Horloge (JLabel zoneHorloge) {

this.zoneHorloge = zoneHorloge;

this.start();

}





public void run () {

while (true) {

Date date = new Date();

zoneHorloge.setAlignmentX(JLabel.LEFT);

zoneHorloge.setText(date.toString());

try {

Thread.sleep(1000);

}

catch (InterruptedException e) {


System.out.println("Erreur de wait !!");

}

}

}



}





L'appel de la bete :



JLabel zoneHorloge = new JLabel();

new Horloge(zoneHorloge);
0
cs_papillon2000 Messages postés 94 Date d'inscription dimanche 30 avril 2006 Statut Membre Dernière intervention 21 juin 2010
4 févr. 2009 à 19:51
bonsoir à tous, je veux utiliser l'horloge pour faire declancher une tache2 , mais je dois attendre la fin du temps d'exécution d'une tache1 pour déclancher la tache2.
quel type d'horloge la plus aproprié à mon cas.

povez vous m'aider SVP.
0
Rejoignez-nous