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

 Java Discussion :

MouseListener avec ou sans implémentation


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2012
    Messages : 4
    Par défaut MouseListener avec ou sans implémentation
    Bonjour,
    J'essaye de faire un choix de code pour écouter mes boutons mais je suis un peu perdu.
    Dans les deux cas que j'ai écrit, j'arrive à écouter la souris mais je ne comprends pas pourquoi dans l'un je dois implémenter l'interface MouseListener et pas dans l'autre. Ca sera gentil si quelqu'un pourra m'expliquer la différence.

    PS : J'ai volontairement utilisé MouseListener et pas ActionListener

    Merci d'avance

    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
     
    class MaFenetre extends JFrame
    {
    	public MaFenetre()
    	{		
    		JButton bouton1 = new JButton("Test");
     
    		bouton1.addMouseListener(new MouseListener(){
     
    			public void mouseClicked(MouseEvent ev) {}
     
    			public void mousePressed(MouseEvent ev) {}
     
    			public void mouseReleased(MouseEvent ev) {}
     
    			public void mouseEntered(MouseEvent ev) {}
     
    			public void mouseExited(MouseEvent ev) {}
     
    		}); 		
    	}
    }
    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
     
    class MaFenetre extends JFrame implements MouseListener
    {
    	public MaFenetre()
    	{		
    		JButton bouton1 = new JButton("Test");
                    bouton1.addMouseListener(this);
     
    	}
     
    	public void mouseClicked(MouseEvent ev) {}
     
    	public void mousePressed(MouseEvent ev) {}
     
    	public void mouseReleased(MouseEvent ev) {}
     
    	public void mouseEntered(MouseEvent ev) {}
     
    	public void mouseExited(MouseEvent ev) {}
     
    }

  2. #2
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Par défaut
    Bonsoir,

    Prenons deux boutons différents sur ta JFrame

    1er cas tu as mis ton mouseListener (en faisant new MouseListener()) sur le bouton donc toutes actions dans les fonctions clicked etc ne s'appliqueront que sur le bouton le 2ème ne sera pas affecté.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    JButton bouton1 = new JButton("Test");
    bouton1.addMouseListener(new MouseListener());
    JButton bouton2 = new JButton("Test2");
    bouton1.addMouseListener(new MouseListener());
    2eme cas tu as implements la classe mouseListener sur ta JFrame, donc dans le concept tu dis que ton JFrame est un Contrôleur de souris. Si le modèle MVC te parle tu mélanges la vue et le contrôleur. Si tu fais un Deuxième bouton avec ce cas tu peux faire par exemple la même réaction au clicked sur les deux boutons.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    JButton bouton1 = new JButton("Test");
    bouton1.addMouseListener(this);
    JButton bouton2 = new JButton("Test2");
    bouton1.addMouseListener(this);
    bien sur tu pourrais mélanger

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    JButton bouton1 = new JButton("Test");
    bouton1.addMouseListener(this);
    JButton bouton2 = new JButton("Test2");
    bouton1.addMouseListener(new MouseListener);
    Mais c'est le bordel pour maintenir une "vraie" application réutiliser dans une entreprise ou autre.

    ce que je te conseil c'est de faire une classe spéciale

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ControleurBouton controleur = new ControleurBouton(this);
    JButton bouton1 = new JButton("Test");
    bouton1.addMouseListener(controleur );
    JButton bouton2 = new JButton("Test2");
    bouton1.addMouseListener(controleur );
    et dans cette classe tu peux gérer la différence entre les boutons.
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2012
    Messages : 4
    Par défaut
    Merci d'avoir consacré ton temps pour me répondre. Quand tu as parlé du modèle MVC, j'ai eu un déclic

    Sinon, tu me conseilles de créer une classe spéciale ControleurBouton mais pour gérer indépendamment l'écoute de plusieurs bouton, ce n'est pas mieux de créer une classe contrôleur séparée pour chaque bouton ?

  4. #4
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Par défaut
    Pour ma part je fais un controleur par vue, si dans une fenêtre inscription client il y a 5 boutons je fais une classe ControleurBoutonInscription qui gère tous les boutons. Sa ce discute mais on me l'a jamais reproché ^_^.
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par em925 Voir le message
    je ne comprends pas pourquoi dans l'un je dois implémenter l'interface MouseListener et pas dans l'autre.
    Dans les deux cas tu implémente MouseListener.
    Dans le premier c'est une classe anonyme qui le fait, dans le deuxième c'est MaFenetre qui le fait.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2012
    Messages : 4
    Par défaut
    Maintenant, je comprends mieux. Merci encore à vous deux

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

Discussions similaires

  1. [Apache] Différence URL avec ou sans ":80"
    Par sylk974 dans le forum Apache
    Réponses: 2
    Dernier message: 11/12/2005, 15h14
  2. [CSS][HTML] Mise en page : Avec ou sans tableaux ?
    Par arno2000 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 09/08/2005, 02h34
  3. Réponses: 7
    Dernier message: 23/07/2005, 12h50
  4. Saut avec ou sans condition
    Par Frenchghost dans le forum Assembleur
    Réponses: 16
    Dernier message: 03/01/2005, 13h28
  5. [C#] [EXCEL] Travailler avec EXCEL sans ouvrir le logiciel
    Par Fabsou dans le forum Windows Forms
    Réponses: 3
    Dernier message: 16/07/2004, 10h29

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