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

AWT/Swing Java Discussion :

Ecouter un évènement Timer dans plusieurs classes


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 24
    Points : 14
    Points
    14
    Par défaut Ecouter un évènement Timer dans plusieurs classes
    Salut à tous!

    Je rencontre un petit soucis sur un projet.

    Plutôt que de tenter de vous expliquer en interprêtant, je vous copie ce que dis le sujet:
    Il faudra utiliser un objet minuterie de la classe Timer du package swing. Cet objet timer devra être déclaré et défini dans la classe Champ. Un évènement Action est déclenché toutes les secondes. Cet évènement sera écouté dans la classe Champ pour incrémenter la durée et dans la classe PanneauEtat pour repeindre le panneau.
    En fait le timer incrémente une variable, et il faut afficher la valeur de cette variable dans PanneauEtat...

    Ca fait plusieurs jours que je cherche et impossible de trouver comment écouter ce timer dans plusieurs classes.

    Avez-vous une idée?

    Si ce n'est effectivement pas possible, avez-vous une astuce pour faire quasiment la même chose?

    Merci par avance!
    @++

  2. #2
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Comme ceci par exemple :
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    class Champ {
     
      private int duree;
      private Timer minuterie;
     
      public Champ() {
        minuterie = new Timer(1000, new ActionListener() {
          public void actionPerformed(ActionEvent ae) {
            duree++;
          }
        });
      }
     
      public void addTickListener(ActionListener listener) {
        minuterie.addActionListener(listener);
      }
     
      public void removeTickListener(ActionListener listener) {
        minuterie.removeActionListener(listener);
      }
     
      public void start() {
        minuterie.start();
      }
     
      public void stop() {
        minuterie.stop();
      }
     
      public int getDuree() {
        return duree;
      }
    }
     
    class PanneauEtat extends JPanel {
     
      private Champ champ;
      private Refresher refresher;
      private JLabel labelDuree;
     
      public PanneauEtat(Champ champ) {
        this.champ = champ;
        this.refresher = new Refresher();
        this.labelDuree = new JLabel();
        this.add(labelDuree);
        champ.addTickListener(refresher);
      }
     
      class Refresher implements ActionListener {
          public void actionPerformed(ActionEvent ae) {
            int duree = champ.getDuree();
            labelDuree.setText(Integer.toString(duree));
          }
      }
    }

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 24
    Points : 14
    Points
    14
    Par défaut
    Super merci beaucoup! Je n'avais pas pensé à faire comme ça!

    Merci

  4. #4
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Chouette ta photo hervé

  5. #5
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    n'est-ce pas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. utiliser les mêmes variable dans plusieurs class
    Par hterrolle dans le forum Langage
    Réponses: 2
    Dernier message: 16/11/2007, 21h11
  2. Function utilisable dans plusieurs classes
    Par zulot dans le forum C++
    Réponses: 7
    Dernier message: 05/06/2007, 00h01
  3. [C# 1.1] Fonction appelée dans plusieurs classes
    Par fregolo52 dans le forum C#
    Réponses: 1
    Dernier message: 25/10/2006, 09h36
  4. Utilisation de variables dans plusieurs classes
    Par dedeloux dans le forum Langage
    Réponses: 3
    Dernier message: 20/07/2005, 17h25
  5. Réponses: 4
    Dernier message: 08/07/2005, 17h37

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