Code de l'interface MouseListener
Résolu/Fermé
Skymer
KX
- Messages postés
- 473
- Date d'inscription
- vendredi 6 décembre 2013
- Statut
- Membre
- Dernière intervention
- 1 novembre 2018
KX
- Messages postés
- 16536
- Date d'inscription
- samedi 31 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 21 mai 2022
A voir également:
- Code de l'interface MouseListener
- Code de l'interface MouseListener ✓ - Forum - Java
- Code wifi via interface reseau ? ✓ - Forum - Internet / Réseaux sociaux
- Perdu code d'accès interface neuf box ✓ - Forum - Internet / Réseaux sociaux
- Code d'erreur : e_fail (0x80004005) composant : consolewrap interface : iconsole {872da645-4a9b-1727-bee2-5585105b9eed} ✓ - Forum - VirtualBox
- Teredo tunneling pseudo-interface code 10 ✓ - Forum - Réseau
2 réponses
KX
14 oct. 2015 à 18:57
- Messages postés
- 16536
- Date d'inscription
- samedi 31 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 21 mai 2022
14 oct. 2015 à 18:57
Bonjour,
Comme tu l'as indiqué MouseListener est une interface, elle ne définit donc pas de code, chacun mets ce qu'il veut.
Comme tu l'as indiqué MouseListener est une interface, elle ne définit donc pas de code, chacun mets ce qu'il veut.
KX
14 oct. 2015 à 20:14
- Messages postés
- 16536
- Date d'inscription
- samedi 31 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 21 mai 2022
14 oct. 2015 à 20:14
Un exemple complet que tu vas pouvoir tester :
import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JFrame; public class Test { public static void main(String[] args) { JFrame frame = new JFrame(); frame.addMouseListener(new DisplayMouseListener()); frame.setSize(200, 200); frame.setLocationRelativeTo(null); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } class DisplayMouseListener implements MouseListener { public void mouseClicked(MouseEvent e) { System.out.println("mouseClicked\t" + e); } public void mousePressed(MouseEvent e) { System.out.println("mousePressed\t" + e); } public void mouseReleased(MouseEvent e) { System.out.println("mouseReleased\t" + e); } public void mouseEntered(MouseEvent e) { System.out.println("mouseEntered\t" + e); } public void mouseExited(MouseEvent e) { System.out.println("mouseExited\t" + e); } }
Skymer
14 oct. 2015 à 20:37
- Messages postés
- 473
- Date d'inscription
- vendredi 6 décembre 2013
- Statut
- Membre
- Dernière intervention
- 1 novembre 2018
14 oct. 2015 à 20:37
Merci mais j'ai déjà fais cet exemple. Mais quelle es le rapport entre MouseListener et MouseEvent, superclasse, instance d'objet etc... ?
KX
14 oct. 2015 à 21:26
- Messages postés
- 16536
- Date d'inscription
- samedi 31 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 21 mai 2022
14 oct. 2015 à 21:26
Ce qu'il ne faut pas oublier c'est que tout part de là :
La méthode addMouseListener(MouseListener) est définie par la classe Component (dont dérive tous les objets Swing). Cette méthode va ajouter l'implémentation de ton MouseListener à une liste gérée par le Component. Quand il y a un événement souris sur le Component c'est lui qui créé l'objet MouseEvent et appelle chaque MouseListener de sa liste pour appeler la bonne méthode en lui passant en paramètre l'objet MouseEvent qu'il vient de créer.
Remarque : on n'est plus vraiment dans de la programmation objet mais plutôt dans de la programmation événementielle.
frame.addMouseListener(new DisplayMouseListener());
La méthode addMouseListener(MouseListener) est définie par la classe Component (dont dérive tous les objets Swing). Cette méthode va ajouter l'implémentation de ton MouseListener à une liste gérée par le Component. Quand il y a un événement souris sur le Component c'est lui qui créé l'objet MouseEvent et appelle chaque MouseListener de sa liste pour appeler la bonne méthode en lui passant en paramètre l'objet MouseEvent qu'il vient de créer.
Remarque : on n'est plus vraiment dans de la programmation objet mais plutôt dans de la programmation événementielle.
Skymer
Modifié par Skymer le 15/10/2015 à 17:42
- Messages postés
- 473
- Date d'inscription
- vendredi 6 décembre 2013
- Statut
- Membre
- Dernière intervention
- 1 novembre 2018
- Messages postés
- 16536
- Date d'inscription
- samedi 31 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 21 mai 2022
Modifié par Skymer le 15/10/2015 à 17:42
C'est marrant que tu me résume le chapitre que je viens d'apprendre ;P tu peux le dire si je formule mal mes questions, mais j'ai compris, donc MouseEvent est un objet invoqué lors d'une action sur le Component, et donc ? Quelle es le rapport à ses deux là (MouseEvent et MouseListener), ce sont des objets à part ou ils sont liés pas l'héritage ou autre ?
Aussi dis moi, tu es programmeur passionné à temps partiel ou professionnel ?
Aussi dis moi, tu es programmeur passionné à temps partiel ou professionnel ?
KX
15 oct. 2015 à 20:01
- Messages postés
- 16536
- Date d'inscription
- samedi 31 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 21 mai 2022
15 oct. 2015 à 20:01
Le rapport entre MouseEvent et MouseListener, c'est que MouseEvent est (comme son nom l'indique) un événement lié à la souris et que le MouseListener c'est l'intercepteur de cet événement et donc la définition de l'action à effectuer lorsque cet événement se produit.
Le MouseEvent est l'action, le MouseListener la réaction.
Si je cliques sur un bouton, j'appelle tous les objets MouseListener définit par ce bouton avec la méthode mouseClicked (puisque j'ai fait un clic) en passant en paramètre de la méthode l'objet MouseEvent correspondant au clic (position X,Y du clic, bouton gauche ou droite de la souris, etc.) ensuite le MouseListener récupère ses informations pour savoir comment faire l'action parce que par exemple un clic gauche ou un clic droit généralement ça ne fait pas la même chose...
Le MouseEvent est l'action, le MouseListener la réaction.
Si je cliques sur un bouton, j'appelle tous les objets MouseListener définit par ce bouton avec la méthode mouseClicked (puisque j'ai fait un clic) en passant en paramètre de la méthode l'objet MouseEvent correspondant au clic (position X,Y du clic, bouton gauche ou droite de la souris, etc.) ensuite le MouseListener récupère ses informations pour savoir comment faire l'action parce que par exemple un clic gauche ou un clic droit généralement ça ne fait pas la même chose...
Skymer
17 oct. 2015 à 08:34
- Messages postés
- 473
- Date d'inscription
- vendredi 6 décembre 2013
- Statut
- Membre
- Dernière intervention
- 1 novembre 2018
- Messages postés
- 16536
- Date d'inscription
- samedi 31 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 21 mai 2022
17 oct. 2015 à 08:34
Donc ce sont deux objets à part entière.
14 oct. 2015 à 19:29
14 oct. 2015 à 19:36
Exemple : OpenJDK 8u40-b25 java.awt.event.MouseListener
14 oct. 2015 à 19:49
14 oct. 2015 à 19:59
Voici la documentation de MouseEvent :
https://docs.oracle.com/javase/8/docs/api/java/awt/event/MouseEvent.html
Par exemple tu peux récupérer la position de la souris (X et Y), le bouton cliqué...
14 oct. 2015 à 20:03