Descriptif 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 

Swing - Interface Homme-Machine

10.3.Les listeners d’évènements

10.3.1.Les listeners hérités de AWT

Les Listeners sont créés par l’implémentation d’une ou de plusieurs interfaces fournies par le package java.awt.event. Lorsque l’événement survient la source appelle la méthode du listener appropriée qui a été redéfinie.
L’implémentation d’une interface impose donc redéfinissiez une ou plusieurs méthodes obligatoires. De plus des objets nommés « Adapter » fournissent une implémentation par défaut ou toutes les méthodes ont un corps vide. Ces objets là sont en réalité des classes et non des interfaces. Le développeur n’a plus à implémenter toutes les méthodes de l’interface, ce qui peut-être fastidieux.
Ils se mettent à l’écoute d’un composant qui s’abonne auprès d’eux et intercèpte tous les évènements, et selon leur nature va réagir en conséquence en exécutant la méthode cible de l’évènement.

L’abonnement se fait par le biais des méthodes addXxxListener(), Xxx représentent le type d’évenement. Les Listeners les plus communs sont illustrés brièvement ici. Un tableau général fait état de l’ensemble des Listeners avec les méthodes à implémenter. Il faut noter que listeners pris en charge par la classe JComponent sont communs à la plupart des contrôles Swing. Il s’agit de ComponentListener, FocusListener, HierachyBoundsListener, HierarchyListener, MethodListener, KeyListener, MouseListener, MouseWheelListener, ContainerListener, PropertyChangeListener, AncestorListener, VetoableChangeListener, …

ActionListener : Définit la méthode pour intercepter les événements d’actions.

void actionPerformed(ActionEvent ae)

ComponentListener : Définit le comportement à adopter quand un élément graphique est caché, déplacé, redimensionné ou affiché.

void componentHidden(ComponentEvent ce)
void componentMoved(ComponentEvent ce)
void componentResized(ComponentEvent ce)
void componentShown(ComponentEvent ce)

ContainerListener : Définit le comportement à adopter quand un élément graphique est ajouté ou supprimé d’un container.

void componentAdded(ContainerEvent ce)
void componentRemoved(ContainerEvent ce)

FocusListener : Définit le comportement à adopter quand un élément graphique a obtenu ou perdu le focus.

void focusGained(FocusEvent fe)
void focusLost(FocusEvent fe)

KeyListener : Définit le comportement à adopter quand une touche est appuyée, relâchée ou si une lettre a été tapée.

Ex : Touche c appuyée → appel successif des 3 méthodes.
Ex : Touche Shift appuyée → appel successif des 2 premières méthodes uniquement

void keyPressed(KeyEvent ke)
void keyReleased(KeyEvent ke)
void keyTyped(KeyEvent ke)

MouseListener : Définit le comportement à adopter quand on clique avec la souris, appuye sur un bouton, relâche un bouton, si le pointeur de la souris entre ou sort de la zone d’un élément graphique.

void mouseClicked(MouseEvent me)
void mouseEntered(MouseEvent me)

10.3.2.Résumé des listeners

  • Listener d’action :
ActionListener est utilisé le plus souvent lors des cliques sur un bouton par exemple. Le fait d’implémenter ce listener vous imposera de redéfinir la méthode actionPerformed(ActionEvent).

  • Listener de sélection :
FocusListener est utilisé lorsqu’un composant graphique reçoit ou perd le focus. Le fait d’implémenter ce listener vous imposera de redéfinir les méthodes focusGained(FocusEvent) et focusLost(FocusEvent). Vous pouvez également hériter de la classe FocusAdapter au lieu d’utiliser le principe de l’implémentation.

ItemListener peut être utilisé sur plusieus composant différents. Le plus souvent il est mis en action lors d’un selection dans une JComboBox afin de prendre en compte l’élément sélectionné de manière le plus dynamique possible en redéfinissant la méthode itemStateChanged(ItemEvent).

ListSelectionListener est utilisé avec le composant JList pour gérer les évènements liés à la selection de valeur dans ce composant en redéfinissant la méthode valueChanged(ListSelectionEvent).

  • Listeners d’entrées de données
KeyListener est utilisé sur les composants qui permettent à l’utilisateur de saisir du texte, JTextField, JPasswordField, Le fait d’implémenter ce listener vous imposera de redéfinir les méthodes : keyPressed(KeyEvent), keyReleased(KeyEvent), keyTyped(KeyEvent) ou d’hériter de la classe KeyAdapter au lieu d’utiliser le principe de l’implémentation.

MouseListener est un listener, comme le suivant qui peuvent être employés sur beaucoup de composant différents. Vous pouvez par exemple prendre en compte le clique sur un JLabel contenant une image. Le fait d’implémenter ce listener vous imposera de redéfinir les méthodes : mouseClicked(MouseEvent), mouseEntered(MouseEvent), mouseExited(MouseEvent), mousePressed(MouseEvent), mouseReleased(MouseEvent) ou vous pouvez hériter de la classe MouseAdapter au lieu d’utiliser le principe de l’implémentation.

MouseMotionListener est un listner trés semblable au précédent, cependant celui-ci vous permettra de gérer l’action de drag & drop. Le fait d’implémenter ce listener vous imposera de redéfinir les méthodes : mouseDragged(MouseEvent), mouseMoved(MouseEvent). Si vous ne souhaitez pas redéfinir les deux méthodes mais uniquement une seule d’entre elles, vous pouvez hériter de la classe MouseMotionAdapter au lieu d’utiliser le principe de l’implémentation.

Descriptif 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 

Retrouvez ci-dessous les autres sections du Laboratoire Sun
Exemples de code
JavaManipuler les looks and feel (lister et affecter)10/15/07
JavaFaire sa propre injection de dépendance avec les annotations5/9/06
JavaSplash screen avec progress Bar5/5/06
JavaFaire un splash screen en swing5/5/06

Essentiels de cours Java
JavaEJB 3 - Les Entreprise Java Bean version 3 (JavaBeans)
Cet essentiel est la suite de « Entreprise JavaBean 2.1 ». Cependant, nous allons étudier les nouvelles spécifications 3.0 qui simplifient énormément le développement par rapport aux EJB 2.6/20/06
JavaSWT - Créer des interfaces graphiques performantes
SWT (Standard Widget Toolkit) est une librairie graphique qui vous permet de réaliser des applications graphiques Java beaucoup plus avancées et surtout plus rapide à l’exécution.1/29/06
JavaStruts - Un framework MVC pour vos applications J2EE
Struts est un framework open-source qui vous permet de gagner du temps, mais qui permet aussi de voir des applications complexes comme une suite de composants de base : Vues, Actions, Modèles. Vous gagnez ainsi en évolutivité et en lisibilité du code.1/13/06
JavaHibernate - Persistance objet - relationnel
Cet essentiel explique comment utiliser Hibernate afin de gérer la persistance objet relationnel au sein de vos applications Java.12/14/05
JavaIntroduction J2EE - Applications d'entreprise
Cours d'introduction aux diverses technologies et outils que l'on peut rencontrer dans le monde du Java orienté entreprise J2EE12/14/05
JavaEJB 2 - Les Entreprise Java Bean (JavaBeans)
L'objectif avec EJB2 (Entreprise JavaBeans) est d'introduire les concepts de l’Ingénierie Logicielle Basée sur les Composants.12/14/05
JavaDesign Pattern - Améliorez l'architecture de vos programmes
Afin de répondre a des situation récurrentes en programmation, les "design pattern" apportent une solution type à beaucoup de contraintes liées à la programmation objet.12/14/05
JavaArchitecture J2EE - Comment organiser son application J2EE
Ce cours explique comment créer un code modulable, lisible et évolutif afin d'assurer la pérénité de son application.12/14/05
JavaLes web-services - Publication de services
Le développement tend vers les technologies du Web. Il est difficile de faire la distinction entre les différents logiciels qui sont de plus en plus intégrés au Web. Les Web Services rentrent dans l’optique de différencier bien précisément les couches.12/14/05
JavaAnt - L'automatisation des tâches du programmeur
Ecrire des scripts afin d'exécuter les tâches récurrentes10/31/05
JavaIntroduction au langage Java - Présentation & historique
Présentation des origines du langage, ainsi que se buts premiers8/11/05
JavaLa Syntaxe Java - Bases & nomenclatures
Bases de la syntaxe du langage Java8/11/05
JavaLes Classes - Concepts & héritage
Base du développement objet en Java grâce aux classes8/11/05
JavaLes Exceptions - Gestion d'erreurs
Gérer les erreurs liés à la programmation8/11/05

Articles
Eclipse Europa : le successeur de Callisto
Après Eclipse Callisto (Eclipse 3.2), la fondation Eclipse sort la nouvelle mouture d'Eclipse appelée Europa (Eclipse 3.3) faisant ainsi passer le nombre de projets embarqués de 10 à 21. Que ceux qui sont réticents aux « distributions » d'Eclipse se rassu12/21/07
JavaCruiseControl : l’outil d’intégration continue à avoir dans sa boite à outils
CruiseControl est un projet open-source offrant de multiples fonctionnalités pour l’intégration, que ce soit pour des développements Java ou .Net. Il est courant sur un projet d’être plusieurs développeurs avec des tâches de développement réparties. Dans7/2/07
JavaEJB3 - Des concepts à l'écriture du code - Editions DUNOD
Consulter le résumé du premier ouvrage du laboratoire Sun de SUPINFO : EJB3 - Des concepts à l'écriture du code. Guide du développeur, éditions DUNOD.5/27/07
JavaPassage de certification Java Web (SCWCD)
Passer une certification est toujours un moment important car cela permet de mieux faire reconnaître ses compétences face à un recruteur ou un employeur.5/12/07
JavaGoogle Web Toolkit
Google Web Toolkit est un framework java pour générer du javascript et des requêtes Ajax à partir d’un code java. Voilà comment il fonctionne.5/10/07
JavaJ2ME Vs SDE
Demain, les terminaux « légers » seront plus nombreux que les ordinateurs personnels, ce qui entraîne une bataille sur le choix d’une plateforme identique à tous ces terminaux… Aujourd’hui nous retrouvons le J2ME ainsi que le SDE qui s’offrent une rude b4/22/07

Tips du laboratoire
EclipseVisual Editor avec Eclipse Europa, c'est possible3/28/08
EclipseGérer les projets dans un workspace.10/16/07
JavaManager votre server d'application avec Eclipse4/21/07
JavaVue des sub-packages avec Eclipse4/21/07
JavaGlisser-déposer avec Eclipse4/21/07

Laboratoire SUPINFO des technologies Sun
labo-sun@supinfo.com


Conditions d'utilisation et © Copyright SUPINFO International University
23, rue de Château Landon - 75010 PARIS - Tél : +33 (0) 153359700 Fax : +33 (0) 153359701
Respect de la vie privée