Gestion des événements en Java : qu'est-ce que c'est et comment ça marche ?

Publié: 2020-03-21

Tout programme basé sur une interface utilisateur graphique ou une interface graphique, y compris l'application Java pour Windows, est piloté par des événements. Pour qu'un programme comme une application Java soit utile, il doit fournir une réponse aux commandes ou aux entrées de l'utilisateur. Les applications Java ont des événements pour capturer les actions de l'utilisateur. Avant de discuter de la gestion des événements en Java, commençons par discuter des événements.

Table des matières

Qu'est-ce qu'un événement ?

Les événements ont la même signification et la même importance dans tous les langages de programmation. Ce sont des effets externes qui sont contrôlés par l'utilisateur et qui font que votre application se comporte conformément à la condition prédéfinie mise en place pour enregistrer sa réponse aux différentes actions de l'utilisateur. Un événement pourrait même être qualifié d'objet qui prend vie lorsqu'un changement a lieu dans l'interface graphique.

Des exemples d'événements en Java incluent la saisie de caractères ou de texte, le clic sur une zone de liste déroulante, le clic sur un bouton ou toute autre action du côté de l'utilisateur. Toute action de ce type déclenche un événement, qui entraîne alors la création de l'objet événement pertinent pour cet événement.

Par exemple, si un utilisateur entre des données (action utilisateur qui déclenche un événement), l'application produit une sortie en affichant une boîte de dialogue ou en affichant des informations (objet événement). Ces comportements liés aux événements font partie du mécanisme de gestion des événements de Java et sont présents dans la bibliothèque Swing GUI. Il est important de noter que la source de chaque événement et l'écouteur d'événement doivent être liés. Si ce n'est pas le cas, le déclenchement d'un événement n'entraînera aucune action.

Pourquoi un programme ou une application doit-il être événementiel ?

Avant que la gestion des événements n'entre en jeu, un programme devait collecter lui-même toutes les informations de l'utilisateur pour savoir ce qu'il faisait à un moment donné. Cela signifie qu'après avoir été exécuté ou initialisé, un programme était toujours dans une grande boucle de répétition qui attendait que l'utilisateur fasse quelque chose.

Ainsi, le programme recherchait n'importe quelle action - de la pression d'un bouton au mouvement du curseur. Après avoir appris que quelque chose s'était passé du côté de l'utilisateur, il s'est préparé à fournir la réponse appropriée. C'est ce qu'on appelle le sondage. Bien que le sondage fasse le travail, le plus souvent, il apparaît comme une tâche trop ingérable et chronophage.

Lire : Questions et réponses de l'entretien avec un développeur Java

Si nous envisageons de l'utiliser pour des applications modernes, cela ne correspond pas vraiment aux exigences. Deux raisons principales rendent l'interrogation inadaptée aux applications modernes : l'interrogation place tout le code lié aux événements dans la grande boucle de répétition, et les interactions qui ont lieu à cet emplacement sont trop complexes. De plus, l'interrogation fait entrer un programme dans une boucle sans fin, ce qui entraîne l'épuisement des cycles CPU sans aucune garantie d'action de la part de l'utilisateur.

L'Abstract Window Toolkit ou AWT est allé de l'avant et s'est associé à un modèle de travail différent pour résoudre le problème évoqué ci-dessus. Ce nouveau modèle est la programmation événementielle. Avec AWT, le programme n'a pas besoin de rechercher les événements générés par l'utilisateur. C'est l'environnement d'exécution Java qui fait ce travail. Il intimise le programme dès qu'un événement a lieu. Il préserve une ressource précieuse de l'épuisement et gère mieux l'interaction de l'utilisateur.

Que sont les gestionnaires d'événements en Java et comment fonctionnent-ils ?

Abordons maintenant le sujet principal que nous avons décidé de traiter. Comment fonctionne la gestion des événements en Java ?

Comme mentionné précédemment, les événements sont des actions de l'utilisateur ou des effets externes qui font qu'une application se comporte d'une certaine manière. En Java, les composants AWT, y compris la zone de texte, le bouton et autres, sont responsables de la génération des événements. Dès qu'un événement est généré, le listener le gère et effectue l'action appropriée.

La gestion des événements en Java comprend quatre éléments. Ceux-ci pourraient même être qualifiés de gestionnaires d'événements.

1. Source d'événement : Une source d'événement qui génère un événement est principalement un composant AWT. Vous pouvez exécuter la commande java.awt.component pour en savoir plus sur les composants qui peuvent ou non jouer un rôle dans la génération d'événements. Les composants sont la sous-classe de la classe source d'origine. Les sources d'événements peuvent être n'importe quoi, des zones de texte et des zones de liste déroulante aux boutons, etc.

Lire : Architecture MVC en Java

2. Classes d'événements : En Java, ce sont des classes qui représentent presque tous les composants qui ont quelque chose à voir avec la génération d'événements. Ceux-ci sont également appelés types d'événements. Voici quelques-unes des classes d'événements les plus courantes :

  • ActionEvent : cette classe d'événement ou ce type d'événement représente un événement qui implique le clic sur un élément graphique, tel qu'un bouton ou un élément de liste. L'écouteur lié à cette classe est ActionListener.
  • KeyEvent : cette classe d'événements représente un événement qui implique l'appui et le relâchement d'une touche. L'écouteur associé à cette classe est KeyListener.
  • ContainerEvent : ce type d'événement représente un événement qui se produit avec le conteneur GUI. Cette classe est associée à tout événement où l'action de l'utilisateur implique l'ajout ou la suppression d'objet(s) de l'interface graphique. L'écouteur associé à cette classe est ContainerListener.
  • MouseEvent : cette classe représente tous les événements qui impliquent un clic ou une pression de la souris. L'écouteur de cette classe est MouseListener.
  • WindowEvent : cette classe ou ce type d'événement représente les événements qui impliquent toute action liée à une fenêtre. La fermeture, l'activation ou la désactivation d'une fenêtre entrent dans cette classe. L'écouteur associé à cette classe est WindowListener.

3. Event Listeners : Ce sont des interfaces de Java qui fournissent diverses méthodes pouvant être utilisées dans différentes classes implémentées. Le travail des auditeurs d'événements consiste à écouter les événements, puis à les traiter de manière appropriée lorsqu'ils se produisent. Presque tous les composants de Java ont un écouteur dédié qui gère tout événement généré par ce composant. ActionListener gère les événements qui impliquent des listes, des boutons, des champs de texte et des menus.

4. Adaptateurs d'événement : Si un programme présente trop de méthodes abstraites pour que l'écouteur puisse les remplacer, il peut devenir difficile de le compiler. Par exemple, si nous voulons fermer un cadre, il y a sept méthodes abstraites WindowListener que nous devons remplacer. Pour réduire la complexité et le codage lourd, Java dispose d'adaptateurs d'événements. Les adaptateurs d'événements sont déjà des méthodes abstraites remplacées.

Conclusion

Il est important de se rappeler que plusieurs sources d'événements et écouteurs peuvent interagir les uns avec les autres. Ainsi, plusieurs événements appartenant à la même classe peuvent être gérés par un seul écouteur. Cela signifie qu'un écouteur peut gérer tous les événements qui impliquent les mêmes composants qui effectuent des actions similaires. Dans le même ordre d'idées, un même événement peut être géré par plusieurs auditeurs, uniquement si la conception du programme le permet.

Logique?

Oui?

Non?

Contactez-nous pour en savoir plus sur une session approfondie sur la gestion des événements en Java. Vous ne le regretterez pas !

Si vous souhaitez en savoir plus sur Java pour le développement Web, consultez le diplôme PG upGrad & IIIT-B en développement de logiciels Full-stack, conçu pour les professionnels en activité et offrant plus de 500 heures de formation rigoureuse, plus de 9 projets et missions, Statut d'ancien de l'IIIT-B, projets de synthèse pratiques et aide à l'emploi avec les meilleures entreprises.

Décrochez l'emploi de vos rêves

MISE À NIVEAU ET DIPLÔME PG DE L'IIIT-BANGALORE EN DÉVELOPPEMENT LOGICIEL
Apprendre encore plus