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

Composants Java Discussion :

Timer -> Swing


Sujet :

Composants Java

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Points : 61
    Points
    61
    Par défaut Timer -> Swing
    Bonjour,
    j ai un petit probleme avec l'utilisation du Timer, en fait je veux executer un timer en cliquant sur jLabel, avec un jButton ca marche, ms le probleme est que sur un jLabel l'evenement est un MouseAdapter, et malheureusement le Timer necessite comme un argument un ActionListener.
    Je vois pas comment le realiser.

    Evenement clique sur le jLabel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    lblVoiture1.addMouseListener(new java.awt.event.MouseAdapter() {
         public void mouseClicked(java.awt.event.MouseEvent e){
    // ici appel du timer
    }
    });

    Sur un jButton:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    jButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent e) {
    	//Timer(Dealy,ActionListener)	
    }
    });

    Ou bien si c pas possible,est ce k on peut alors dans la partie evenement jLabel faire appelle de la methode acionPerformed du bouton (comme ca je pourrais cacher le bouton et simuler le clique) ?!


    Merci


    [ Modéré par christopheJ ]
    Ajout des balises code : un message lisible est plus agréable
    Les Règles du Forum

  2. #2
    Membre actif Avatar de xxaragornxx
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 241
    Points : 253
    Points
    253
    Par défaut
    pourquoi ne pas faire une méthode du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void beginTask() {
    Timertask maTâche = new TimerTaskPerso();
    monTimer.schedule(maTâche, délai, période);
    }
    et tu appelle la méthode beginTask() quand tu le souhaites !

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Points : 61
    Points
    61
    Par défaut
    Je sais pas comment marche le TimerTask ...
    Tu peux m'aider peut etre

    Merci deja

  4. #4
    Membre actif Avatar de xxaragornxx
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 241
    Points : 253
    Points
    253
    Par défaut
    Citation Envoyé par micanti
    Je sais pas comment marche le TimerTask ...
    Tu peux m'aider peut etre

    Merci deja
    Le TimerTask est ce qui va définir la tâche à faire pour un Timer.
    Cette classe implémente Runnable. Elle a donc une méthode run() à implémenter. Et c'est justement dans cette méthode que tu dis ce qu'il faut faire.

    Donc en paramètre de la méthode schedule tu peux créer directement ton TimerTask en implémentant sa méthode run:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    monTimer.schedule(new Timertask(){
                   public void run() {
     
                   //*************
                        //Le comportement que je veux
                   //*************
     
                   }
              }, délai, période);
    Ou, suivant tes besoins, tu peux créer une classe (interne par exemple) qui étend TimerTask:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    private class TimerTaskPerso extends TimerTask {
       public void run() {
            //*************
               //Le comportement que je veux
            //*************
       }
    }
    puis tu utilises le code que j'ai mis dans le post précédent.
    Cette dernière solution permettant de passer des paramètres à tâche...

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Points : 61
    Points
    61
    Par défaut
    Oui, ms ton monTimer, il est de quel type ?! Timer, non?!
    Parce que si c le cas, c justement la le probleme, parce que comme j effectue un clique sur jLabel, j ai pas de ActionListener pour le donner comme argument au constructeur de Timer.

  6. #6
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    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
     
    lblVoiture1.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mouseClicked(java.awt.event.MouseEvent e){
        timer = new Timer(delay, new ActionDuTimer());
        timer.start();
      }
    });
     
    jButton.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent e) {
        timer = new Timer(delay, new ActionDuTimer());
        timer.start();
      }
    });
     
    // ... plus loin
     
    class ActionDuTimer implements ActionListener {
      public void actionPerformed(ActionEvent evt) {
        // action du timer
      }
    }
    Romain Guy
    Android - Mon livre - Mon blog

  7. #7
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Points : 61
    Points
    61
    Par défaut Timer
    Merci beaucoup !!!

    Ca fonctionne

Discussions similaires

  1. java swing Timer
    Par Delnir dans le forum Débuter
    Réponses: 0
    Dernier message: 19/03/2009, 21h14
  2. Probleme Timer swing
    Par xokami35x dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 19/08/2008, 15h17
  3. [swing] Probleme de thread avec Timer
    Par issou dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 13/05/2006, 22h52
  4. [javax.swing.Timer] Arrêter mon Timer
    Par GLDavid dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 17/01/2006, 15h26
  5. [Swing]Timer
    Par micanti dans le forum Composants
    Réponses: 4
    Dernier message: 04/11/2005, 06h58

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