Heure et Dates actuelles ..

Résolu/Fermé
Mayusu Messages postés 43 Date d'inscription lundi 8 septembre 2014 Statut Membre Dernière intervention 27 janvier 2016 - Modifié par Whismeril le 9/04/2015 à 06:57
Mayusu Messages postés 43 Date d'inscription lundi 8 septembre 2014 Statut Membre Dernière intervention 27 janvier 2016 - 13 avril 2015 à 16:06
Bonjour,

J'essaye d'afficher l'heure et la dates actuelles d'une manière dynamique .. voilà le code que j'ai écrit mais il ne fonctionne pas et m'affiche le label vide :s

 public void clock()
 {
  Thread clock = new Thread()
  {
   public void Run()
   {
    try 
    {
     for(;;)
     {
     Calendar cal = new GregorianCalendar();
     
     int day = cal.get(Calendar.DAY_OF_MONTH);
     int month = cal.get(Calendar.MONTH);
     int year = cal.get(Calendar.YEAR);
     
     int second = cal.get(Calendar.SECOND);
     int minute = cal.get(Calendar.MINUTE);
     int hour = cal.get(Calendar.HOUR);
     
     lblClock.setText(hour + ":" + minute + ":" + second + "      " + day + "/" + month + "/" + year);
     
     sleep(1000);
     
     }
    } catch (InterruptedException e) 
    {
     e.printStackTrace();
    }
    
    
    
   }
  };
  
  clock.start();
  
  

 }
 public Bienvenue() {
  initialize();
  clock();
  
 }



EDIT: Ajout de la coloration syntaxique.

Merci beaucoup d'avance :)

3 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
9 avril 2015 à 08:11
Bonjour,

Je n'ai pas testé, mais la méthode
public void Run()
n'est pas celle attendue pour définir le corps du thread, c'est
public void run()
avec un "r" minuscule qui est attendu. Un moyen simple de ne pas se faire avoir c'est de rajouter l'annotation
@Override
qui va déclencher une erreur si la méthode sur laquelle elle est posée n'est pas une redéfinition.

Thread clock = new Thread()
{
    @Override
    public void run()
    {
1
Salut,
J'ai essayé ça et cela fonctionne :

Thread clock = new Thread() {
   public void run() {
    try {
     for(;;) {
      SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
      Calendar cl = Calendar.getInstance();
      String currentDate = df.format(cl.getTime());
      
      lblClock.setText(currentDate);
      
      sleep(1000);
     }
    } catch (InterruptedException e) {
     e.printStackTrace();
    }
   }
  }; clock.start();
1
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
12 avril 2015 à 16:07
Oui, ça fonctionne parce que tu as
run()
avec un "r" minusucle, alors que Mayusu as
Run()
avec un "R" majuscule, c'est ce que je disais déjà ici.

Comme la méthode
start()
appelle la méthode
run()
, écrire le traitement dans une méthode
Run()
est sans effet pour le Thread.
0
Mayusu Messages postés 43 Date d'inscription lundi 8 septembre 2014 Statut Membre Dernière intervention 27 janvier 2016
13 avril 2015 à 16:06
Je vois !

Merci infiniment :D
0