Événements
Principe
Comme dans la plupart des environnements graphiques, Swing est basée
sur une programmation par événements. Elle utilise la notion de
générateur d'événements qui envoie des événements et
d'auditeur d'événements qui les reçoit. Le principe de
fonctionnement est le suivant.
- Un composant enregistre des auditeurs d'événements
(Listener).
- Lorsqu'un événement se produit dans un composant, il est envoyé
aux auditeurs enregistrés.
- Chaque auditeur définit les actions à entreprendre, dans des méthodes
aux noms prédéfinis.
Par exemple, le fonctionnements des boutons est le suivant.
- Un bouton (JButton) enregistre des objets
ActionListener par l'intermédiaire de sa méthode
addActionListener(ActionListener).
- Lors d'un clique, un ActionEvent est envoyé aux
ActionListener enregistrés.
- Concrètement, cet envoi d'un événement correspond à l'appel de la
méthode actionPerformed(ActionEvent) de chaque
ActionListener.
- La classe ActionListener est en fait une interface qui
définit la méthode actionPerformed(ActionEvent). Tout objet
peut implémenter cette interface, pourvu qu'il possède une méthode
actionPerformed.
De manière générale, le nom d'un événement se termine par
Event et le nom de l'auditeur correspondant se termine par
Listener.
Événements principaux en Swing
Voici une liste des principaux événements utilisés par Swing. Ils
dérivent tous de la classe AWTEvent (et pas de la classe
Event qui est obsolète).
- ActionEvent pour les boutons (JButton et les classes
dérivées), les entrées de menus (JMenuItem), les zones de texte
(JTextField), etc ….
- InputEvent et ses deux sous-classes KeyEvent et
MouseEvent pour le clavier et les mouvements de la souris.
- ChangeEvent pour les curseurs.
- TextEvent pour les composants de texte comme
TextComponent.
- UndoableEditEvent pour la gestion du undo/redo.