Heure et Dates actuelles ..

Résolu
Mayusu Messages postés 51 Statut Membre -  
Mayusu Messages postés 51 Statut Membre -
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

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    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
  2. Utilisateur anonyme
     
    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
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      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
  3. Mayusu Messages postés 51 Statut Membre
     
    Je vois !

    Merci infiniment :D
    0