06-01-2009
 
  Accueil arrow Tutoriels arrow Java arrow Event    
Accueil
Travaux
Mon CV
Tutoriels
Histoire
Contact


Event Convertir en PDF Version imprimable
Appréciation des utilisateurs: / 4
FaibleMeilleur 
Un événement au sens littéraire c'est un fait qui survient à un moment donné. En programmation c'est une action émis par l'utilisateur ou un programme afin de déclencher un traitement. Pour certains langages objet comme le langage Java, un événement est un objet qui décrit ce qui s’est produit. Il existe différents types de classes d’événements pour décrire des catégories différentes d’actions utilisateur.
  • Sources d’événements :

C'est l'origine de l'événement. A titre d’exemple, un clic de la souris sur un composant bouton génère une instance de la class ActionEvent. Cette une instance contient des informations sur le statut de l’événement par exemple :

- getActionCommand() : renvoie le nom de commande associé à l’action.
- getModifiers() : renvoie la combinaison des "modificateurs", c’est à dire la combinaison des touches que l’on a maintenues pressées pendant le click (touche Shift par exemple).
- getSource() : rend l’objet qui a généré l’événement.

  • Gestionnaire d’événements
Un gestionnaire (handler en anglais) d’événement est une méthode qui reçoit un objet de type Event, l’analyse et traite les conséquences de l’interaction utilisateur.Pour certains types d’événements il peut y avoir plusieurs types de gestionnaires qui seront respectivement appelés en fonction de l’action qui s’est produite au niveau du composant source. Ainsi pour un événement souris on pourra distinguer un gestionnaire correspondant à l’action du “clic” ou un gestionnaire correspondant au fait que le curseur soit passé sur le composant concerné.

Modèle par délégation

Le JDK 1.1 a introduit dans Java un modèle d’événement appelé modèle d’événement par délégation. Dans un modèle d’événement par délégation, les événements sont (indirectement) générés par un composant graphique (qualifié de “source” de l’événement); on doit associer à ce composant un objet de traitement d’événement (appelé veilleur: Listener) pour recevoir l’événement et le traiter. De cette façon, le traitement d’événement peut figurer dans une classe distincte du composant impliqué.

Un “veilleur” est susceptible de traiter plusieurs actions liées à un type d’événement et donc de disposer de plusieurs gestionnaires : par exemple un gestionnaire chargé de veiller sur les “clics” souris et un chargé de veiller sur le passage de la souris sur le composant.

Exemple de mise en place de traitement d’événement

A titre d’exemple, voici une fenêtre (TestButton.java) simple comportant un seul bouton :

TestButton.java

Puis on définit la classe de notre VeilleurBouton (VeilleurBouton.java), cette classe doit implémenter une interface (une déclaration de type qui permet de décrire une capacité) pour l'obliger d'implanter le code correspondant aux méthodes déclarées mais cela lui permettra d’être “vue” comme conforme au contrat de type exigé. Le choix de l'interface d'épand de la catégorie des événements (voir lite suivante) et parfois de composants.

Catégorie
Interface
Methodes
Action ActionListener actionPerformed(ActionEvent)
Item ItemListener itemStateChanged(ItemEvent)
Mouse Motion MouseMotionListener mouseDragged(MouseEvent)
mouseMoved(MouseEvent)
Mouse MouseListener mousePressed(MouseEvent)
mouseReleased(MouseEvent)
mouseEntered(MouseEvent)
mouseExited(MouseEvent)
mouseClicked(MouseEvent)
Key KeyListener keyPressed(KeyEvent)
keyReleased(KeyEvent)
keyTyped(KeyEvent)
Focus FocusListener focusGained(FocusEvent)
focusLost(FocusEvent)
Window WindowListener windowClosing(WindowEvent)
windowOpened(WindowEvent)
windowIconified(WindowEvent)
windowDeiconified(WindowEvent)
windowClosed(WindowEvent)
windowActivated(WindowEvent)
windowDeactivated(WindowEvent)

Pour notre veilleur nous allons implémenter l'interface ActionListener pour définir une action sur le buttons.

VeilleurBouton.java

Exemple de personnalisation un événement

Le modèle d'événement Java nous permet de créer facilement nos propres événements, pour cela nous allons procéder en 3 étapes :

  • Listener : créer une interface (MyEventListener.java) pour que notre veilleur l'implémente et ainsi il sera obligé de définir ses méthodes. Cette interface doit hérite de EventListener l'interface de description que touts les veilleurs doivent étendre.

  • MyEventListener.java

  • Event : créer une class fille(MyEvent.java) de la classe mère EventObject dont tous les objets d'événements devront hériter pour les personnaliser en fonction de nos besoins.

  • MyEvent.java

  • Component : Créer la classe (MyComponent.java) pour définir les objets qui vont générer des événements, comme pour les boutons par exemple.

  • MyComponent.java

Pour terminer nous allons crée une interface graphique (IHM.java) pour tester notre événement.

IHM.java

Télécharger l'archive complet de ce tutoriel (Event.zip)

Dernière mise à jour : ( 01-04-2007 )
 


Java Technology
Book Review: Head First Software Development

O'Reilly's new Head First Software Development sums up decades of research on what works and what doesn't in the often arcane world of software development.

Java Technology Headlines
 

© 2009 Le site Web de Mâamoun BERNICHI
Joomla! is Free Software released under the GNU/GPL License.