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 :

methode class mouseListener


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de fantomas261
    Inscrit en
    Avril 2007
    Messages
    486
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 486
    Par défaut methode class mouseListener
    bonjour
    je voudrais savoir si j ai besoin d utiliser 2 methodes de la class mouseListener est ce que je suis obliger d ecrire les profils des autres methodes si oui pourquoi ?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 11
    Par défaut
    Non, si tu implémentes MouseListener comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class MaClasse implements MouseListener
    Tu n'as besoin de définir que les méthodes dont tu as besoin.

  3. #3
    Membre expérimenté Avatar de jibbi
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 165
    Par défaut
    Citation Envoyé par muldoon
    Non, si tu implémentes MouseListener comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class MaClasse implements MouseListener
    Tu n'as besoin de définir que les méthodes dont tu as besoin.
    Désolé mais tu fais erreur. MouseLisener est une interface, on doit donc implémenter toutes les méthodes.

    une alternatiive est d'utiliser la classe abstraite MouseAdapter. Seule les classes abstraite n'ont pas l'obligation d'implémenter les méthode d'une interface.

    Il y plusieurs facon faire, en voici quelque une:

    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
     
    public calss MaClasse extends JFrame{
     
         // inner class  
         class clickEvent extends MouseAdapter{
               pulic void mouseClicked(MouseEvent e) {
                      // traiter l'evenment click 
               }
     
        }
        // anonyme
        MouseAdapter clickEvent = new MouseAdapter(){
               pulic void mouseClicked(MouseEvent e) {
                      // traiter l'evenment click 
               }
     
        };
     
       /*constructor*/ 
        public MaClasse(){
     
          //ajout des Events
         addMouseListener(new ClickEvent());
         // ou
         addMouseListener(clickEvent);
         // création d'un event anonyme
         addMouseListenr(new MouseAdapter(){
              pulic void MouseClicked(MouseEvent e) { // ligne 1 erreur intentionnel
                      // traiter l'evenment click 
               }
         });
        }
     
     
    }
    Le danger avec la class MousAdapter est de faire une erreur dans sa signature, le compliateur ne signalera pas d'erreur et l'evenement ne se produit pas.

    Voir la ligne 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     public void MouseClicked(MouseEvent e) // ne sera pas appelé
    la vraie signature est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     public void mouseClicked(MouseEvent e)  //
    Ce genre d'erreur est évité avec les interfaces.

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Pour eviter ce genre de probleme lors d'une surcharge d'une methode, il convient d'utiliser (depuis Java 5), l'annotation @Override qui declenche une erreur a la compilation s'il n'y a aucune methode mere du meme nom :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    MouseAdapter clickEvent = new MouseAdapter(){
        @Override public void MouseClicked(MouseEvent e) {
        ...
        }
    }
    Declenchera une erreur a la compilation puisqu'il n'existe pas de methode MouseClicked() dans MouseAdapter. Ceci passera par contre sans probleme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    MouseAdapter clickEvent = new MouseAdapter(){
        @Override public void mouseClicked(MouseEvent e) {
        ...
        }
    }
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Membre expérimenté Avatar de jibbi
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 165
    Par défaut
    On apprend tous les jours... Merci bouye

  6. #6
    Membre éclairé Avatar de fantomas261
    Inscrit en
    Avril 2007
    Messages
    486
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 486
    Par défaut
    merci beaucoup

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

Discussions similaires

  1. appel d'une methodes classe fille de type classe mere
    Par Mephista dans le forum Langage
    Réponses: 8
    Dernier message: 29/10/2011, 23h05
  2. Spécialisation methode classe template
    Par kuroro20 dans le forum C++
    Réponses: 1
    Dernier message: 03/02/2011, 15h59
  3. Appel de methode Class Partial
    Par Rei_K dans le forum ASP.NET
    Réponses: 9
    Dernier message: 21/01/2011, 09h03
  4. Réponses: 2
    Dernier message: 01/11/2008, 20h19
  5. Run time error 1004 - Select method class failed
    Par fhuyet dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/07/2008, 11h18

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