IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Le timer ne s'exécute pas


Sujet :

Langage Java

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2007
    Messages : 165
    Points : 119
    Points
    119
    Par défaut Le timer ne s'exécute pas
    Bonjour,

    J'ai essayé d'exécuter le timer en vain :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    public class Test {
     
    	private Timer timer;
     
    	public Test(){
     
    	    // Création et lancement du timer
    	    timer = createTimer();
    	    timer.start ();
     
    	}
     
    	public static void main(String arg[]){
     
    		new Test();
    	}
     
    	// Méthode renvoyant un timer prêt à démarrer
    	  private Timer createTimer()
    	  {
    	    // Création d'une instance de listener 
    	    // associée au timer
    	    ActionListener action = new ActionListener ()
    	      {
    	        // Méthode appelée à chaque tic du timer
    	        public void actionPerformed (ActionEvent event)
    	        {
    	          System.out.println("Présent !!");
    	        }
    	      };
     
    	    // Création d'un timer qui génère un tic
    	    // chaque 500 millième de seconde
    	    return new Timer (500, action);
    	  }  
     
    }
    Où pourrait bien être le problème ?
    Merci d'avance.
    Cordialement.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 190
    Points : 153
    Points
    153
    Par défaut
    Salut,

    Quel timer utilises-tu?
    javax.swing.Timer
    java.util.Timer

    ou un autre?

  3. #3
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    Salut

    ce n'est pas celui du package util en tout cas car je ne vois pas dans la javadoc de constructeur avec comme paramètre un nom et une actionlistener

  4. #4
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Visiblement, tu utilises javax.swing.Timer
    Je n'ai jamais utilisé cette classe-là mais je remarque un truc, c'est que ton ActionListener n'écoute rien du tout.
    Je te propose de faire les modifications suivantes pour voir si le problème vient bien de là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    public class Test extends javax.swing.JButton{
     
    	private Timer timer;
    	
    	public Test(){
     
    	    // Création et lancement du timer
    	    timer = createTimer();
    	    timer.start ();
     
    	}
    	
    	public static void main(String arg[]){
    		
    		new Test();
    	}
    	
    	// Méthode renvoyant un timer prêt à démarrer
    	  private Timer createTimer()
    	  {
    	    // Création d'une instance de listener 
    	    // associée au timer
    	    ActionListener action = new ActionListener ()
    	      {
    	        // Méthode appelée à chaque tic du timer
    	        public void actionPerformed (ActionEvent event)
    	        {
    	          System.out.println("Présent !!");
    	        }
    	      };
                this.addActionListener(action);
    	      
    	    // Création d'un timer qui génère un tic
    	    // chaque 500 millième de seconde
    	    return new Timer (500, action);
    	  }  
     
    }
    Bien entendu, j'imagine que l'utilisation d'un JButton ici n'est pas judicieuse mais c'est juste pour vérifier que le problème vient bien du fait que ton écouteur n'écoute rien.
    Si le problème vient bien de là, tu pourras toujours adapter en fonction de l'application que tu veux faire

  5. #5
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 502
    Points
    15 502
    Par défaut
    Citation Envoyé par DiJiCode Voir le message
    Où pourrait bien être le problème ?
    En fait, ton timer fonctionne bien, mais comme le programme de ton exemple ne fait rien d'autre qu'initialiser le timer, l'application se termine avant qu'il ait eu le temps de se déclencher. Si tu rajoutes des actions longues dans ton code, il aura le temps de se déclencher.

    La classe Timer de javax.swing fonctionne sur un Thread "démon", qui se termine automatiquement quand tous les Threads non démon sont terminés. Si tu veux que ton timer empêche ton programme de s’arrêter, regarde la classe Timer de java.util qui peux être configurée en mode démon ou non.

    Citation Envoyé par DiJiCode Voir le message
    Je n'ai jamais utilisé cette classe-là mais je remarque un truc, c'est que ton ActionListener n'écoute rien du tout.
    Non, son code est bon.
    L'ActionListener est passé en paramètre au Timer qui le déclenche correctement toutes les 500ms, le problème est que le programme se termine avant.

Discussions similaires

  1. [Access] Update ne s'exécute pas complètement car PK
    Par JulienCEA dans le forum Langage SQL
    Réponses: 5
    Dernier message: 21/02/2006, 22h14
  2. Réponses: 13
    Dernier message: 30/01/2006, 14h21
  3. mon programe asp ne s'exécute pas????????????
    Par ghita269 dans le forum ASP
    Réponses: 1
    Dernier message: 07/11/2005, 11h23
  4. jar Eclipse/bureau -> exécute pas mes requetes !!!
    Par Elea49 dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 04/08/2005, 15h11
  5. Réponses: 3
    Dernier message: 09/10/2002, 11h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo