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.2.Les classes d’évènements

10.2.1.Principe

Le mécanisme de gestion des événements repose sur les classes d’événements. A la base de la hiérarchie de ces classes on trouve la classe EventObject (du package java.util). Elle représente la superclasse pour tous les événements.

C’est dans cette classe que l’on va trouver deux méthodes qui sont toString() et getSource().

La méthode toString() retourne l’évènement sous forme d’une chaîne de caractères et présente donc un intérêt limité.

Par contre la méthode getSource() est particulièrement intéressante car elle permet de retourner la source de l’évènement. Cet objet source pourra être alors casté dans son type d’origine.

Un évènement est capable d’encapsuler des informations concernant son contexte d’apparition :
  • Le composant source de l’événement.
  • Les coordonnées du clic (dans le cas d’un MouseEvent).
  • La valeur de la touche tapée pour un KeyEvent.



L’objet qui intercepte l’interaction utilisateur est appelé un Listener. Comme ce nom l’indique son rôle principal est d’être « à l’écoute » d’un composant (JButton, JPanel…).
Le Listener doit s’abonner à l’événement auprès du composant. Il demande ainsi au composant de l’avertir en cas d’interaction utilisateur sur ce composant.



Le principe de la gestion des événements


C’est au niveau du composant que l’on trouve les méthodes d’abonnement aux différents listeners. Ces méthodes s’expriment sous la forme addXxxListener(XxxListener l)Xxx représente le type d’évènement écouté.

Exemples de méthodes d’abonnement :
  • addActionListener()
  • addKeyListener()
  • addFocusListener()


Par ailleurs ces méthodes sont héritées de la classe Container et sont donc communes à un grand nombre de composants et conteneurs. Selon la méthode, une interface est requise. Par exemple addActionListener(ActionListener l) requière l’interface ActionListener. C’est dans cette interface que l’on trouve les fonctions qui permettront de traiter les événements et qu’il faut obligatoirement ajouter au code de notre application.

Il est aussi possible de désabonner un listener du composant auquel il a été abonné à l’aide de la méthode removeXxxListener() ou Xxx doit être remplaçé par le nom de l’événement.

10.2.2.Evènements de java.awt.event

ActionEvent : Evènement généré si on active un bouton (via le clavier ou la souris), si on double clique sur un élément de liste ou si on sélectionne un élément de menu.

String getActionCommand() retourne le nom de la commande associée à un événement. (dans le cas d’un bouton sans action command, retourne son libellé)

ComponentEvent : Evènement généré lorsqu’un élément est caché, déplacé, redimensionné, ou lorsqu’il apparaît.

Component getComponent() renvoie l’objet à l’origine de l’événement (le cast peut être necessaire)

ContainerEvent : Evènement généré lorsqu’un élément est ajouté ou supprimé d’un container.

Container getContainer() renvoie une référence au container à l’origine de l’événement
Component getChild() renvoie une référence à l’élément ajouté au container ou supprimé

FocusEvent : Evènement généré lorsqu’un élément gagne ou perd le focus.

boolean isTemporary() true si l’événement est temporaire et false dans le cas contraire Une zone de texte perd temporairement le focus si l’utilisateur manipule l’ascenceur pendant la saisie

KeyEvent : Evènement généré lorsqu’une touche du clavier est pressée.

char getKeyChar() retourne le caractère saisi
int getKeyCode() retourne le code de la touche pressée

… + nombreuses autres méthodes

MouseEvent : Evènement généré lorsque l’on déplace la souris, lorsqu’on la fait glisser (drag), lors du clic ou du relâchement d’un bouton.

int getX() retourne la position horizontale du pointeur
int getY() retourne la position verticale du pointeur
Point getPoint() retourne les coordonnées du pointeur de la souris dans un objet java.awt.Point
int getClickCount() retourne le nombre de clics effrectués lors de l’événement

10.2.3.Evènements de javax.swing.event

  • TreeSelectionEvent – Changement de la position courante dans un JTree
  • HyperlinkEvent – Clic sur un lien hypertexte
  • JInternalFrameEvent – Support des évènements ayant pour source une JInternalFrame
  • ListSelectionEvent Changement dans la selection


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