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 :

Ecouteur d'évenements en Java


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2005
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 246
    Par défaut Ecouteur d'évenements en Java
    Bonjour tout le monde,

    Je voulais savoir s'il est possible d'écrire un écouteur d'évènement qui puisse savoir si une méthode quelconque vient de s'exécuter et en recuperer son nom, les noms de ses paramètres.

    merci.

  2. #2
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 110
    Par défaut
    si c'est pour une de tes propres classes oui.

    il faut faire ton propre EvenObject et EventListener.
    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
    56
    57
    58
    59
    60
    /*
     * TreeEvent.java
     *
     * Created on 3 juillet 2007, 19:48
     *
     * To change this template, choose Tools | Template Manager
     * and open the template in the editor.
     */
     
    package altersig.lib.gui.nav;
     
    import java.util.EventObject;
    import org.geotools.map.MapContext;
    import org.jdesktop.swingx.JXTreeTable;
     
    /**
     *
     * @author eclesia
     */
    public class TreeEvent extends EventObject{
     
        private MapContext mapcontext;
        private int fromindex;
        private int toindex;
     
     
        public TreeEvent(JXMapContextTree treetable, MapContext mapcontext, int fromindex, int toindex) {
            super(treetable);
            this.mapcontext = mapcontext;
            this.fromindex = fromindex;
            this.toindex = toindex;        
        }
     
     
     
     
        public TreeEvent(JXMapContextTree treetable, MapContext mapcontext, int position) {
            super(treetable);
            this.mapcontext = mapcontext;
            this.fromindex = position;
            this.toindex = position;
        }
     
     
        public MapContext getMapContext() {
            return this.mapcontext;
        }
     
     
        public int getFromIndex() {
            return this.fromindex;
        }
     
     
        public int getToIndex() {
            return this.toindex;
        }
     
     
    }
    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
    package altersig.lib.gui.nav;
     
    import java.util.EventListener;
     
    /**
     *
     * @author eclesia
     */
    public interface TreeListener extends EventListener{
     
     
        public void ContextAdded(TreeEvent event) ;
     
        public void ContextRemoved(TreeEvent event);
     
        public void ContextActivate(TreeEvent event);
     
        public void ContextMoved(TreeEvent event);
     
    }


    si c'est pour une classe de la JVM, tout les ecouteurs dont tu as besoin peuvent deja etre implemente. (actionlistenr,focuslistener...etc...)

  3. #3
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Hello,

    Les écouteurs, en java, s'implémentent selon un modèle proche du pattern Observer...

    Dans l'idée, tu as une liste d'abonnés (List<MyListener>) qui est notifiée lorsque tel ou tel événement se produit (via appel d'une méthode).

    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
     
    // Interface des écouteurs. Implémentent onMyMethod, qui est levé à chaque fois que "myMethod" est appelé sur une instance de MyClass.
    interface MyClassListener {
        void onMyMethod(MyClassEvent event);
    }
     
    // Paramètre passé lors de la levée d'un événement
    class MyClassEvent extends EventObject {
        MyClassEvent(Object source) {
            super(source);
        }
    }
     
    // Classe qui produit des événements
    class MyClass {
        private List<MyClassListener> listeners = new ArrayList<MyClassListener>();
     
        // Ajoute un écouteur
        void addMyClassListener(MyClassListener listener) {
            listeners.add(listener);
        }
     
        // Supprime un écouteur
        void removeMyClassListener(MyClassListener listener) {
            listeners.remove(listener);
        }
     
        // Génère l'événement vers tous les écouteurs
        private void fireOnMyMethod(MyClassEvent event) {
            for (MyClassListener l : listeners) {
                l.onMyMethod(event);
            }
        }
     
        // Méthode qui est écoutée
        public void myMethod() {
            fireOnMyMethod(new MyClassEvent(this));
            // work here...
        }    
    }
    Ensuite, pour avoir tous les paramètres qui sont passés à myMethod, il faut soit modifier la signature de "onMyMethod" et ajouter les paramètres, soit les encapsuler dans les instances de "MyClassEvent"-


  4. #4
    Membre expérimenté Avatar de hydraland
    Profil pro
    Développeur Java
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Par défaut
    Salut,

    Si tu veux faire ce que tu demandes je te conseille d'utiliser les Aspect. Personellement j'utilise AspectJ.

    A+
    Hydraland

  5. #5
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815

  6. #6
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2005
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 246
    Par défaut
    Merci, je farai les essais.

    A+

Discussions similaires

  1. Ecouteur sur un dossier java
    Par inesEsprit dans le forum Général Java
    Réponses: 2
    Dernier message: 07/09/2012, 11h56
  2. [JNI] Remontée d'évenements DLL C++ vers Java
    Par eag35 dans le forum Entrée/Sortie
    Réponses: 14
    Dernier message: 16/09/2007, 20h53
  3. [Java beans]avantage des évenements
    Par Lethal dans le forum Langage
    Réponses: 8
    Dernier message: 21/08/2007, 16h00
  4. [Debutant] Gestionnaire d'évenement en Java ?
    Par benwa dans le forum Général Java
    Réponses: 3
    Dernier message: 02/05/2007, 17h13
  5. ecouteur clavier en java
    Par sasususu dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 17/04/2007, 10h34

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