Gestion des événements AWT

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

Le changement d'état d'un objet est appelé événement, c'est-à-dire que l'événement décrit le changement d'état de la source. Les événements sont générés à la suite de l'interaction de l'utilisateur avec les composants de l'interface utilisateur graphique. Par exemple, cliquer sur un bouton, déplacer la souris, saisir un caractère via le clavier, sélectionner un élément dans la liste, faire défiler la page sont les activités qui provoquent un événement.

Types d'événements

Les événements peuvent être globalement classés en deux catégories:

  • Foreground Events- Les événements qui nécessitent une interaction directe de l'utilisateur.Ils sont générés comme les conséquences d'une personne interagissant avec les composants graphiques de l'interface utilisateur graphique. Par exemple, cliquer sur un bouton, déplacer la souris, saisir un caractère via le clavier, sélectionner un élément dans la liste, faire défiler la page, etc.

  • Background Events- Les événements qui nécessitent l'interaction de l'utilisateur final sont appelés événements d'arrière-plan. Les interruptions du système d'exploitation, les pannes matérielles ou logicielles, la minuterie expire, la fin d'une opération sont des exemples d'événements en arrière-plan.

Qu'est-ce que la gestion des événements?

La gestion des événements est le mécanisme qui contrôle l'événement et décide de ce qui doit se passer si un événement se produit. Ce mécanisme possède le code connu sous le nom de gestionnaire d'événements qui est exécuté lorsqu'un événement se produit. Java utilise le modèle d'événement de délégation pour gérer les événements. Ce modèle définit le mécanisme standard pour générer et gérer les événements. Voyons une brève introduction à ce modèle.

Le modèle d'événement de délégation comprend les principaux participants suivants, à savoir:

  • Source- La source est un objet sur lequel l'événement se produit. La source est responsable de fournir des informations sur l'événement survenu à son gestionnaire. Java fournit comme avec les classes pour l'objet source.

  • Listener- Il est également connu sous le nom de gestionnaire d'événements.Listener est chargé de générer une réponse à un événement. Du point de vue de l'implémentation java, l'écouteur est également un objet. L'auditeur attend de recevoir un événement. Une fois l'événement reçu, l'auditeur traite l'événement et retourne ensuite.

L'avantage de cette approche est que la logique de l'interface utilisateur est complètement séparée de la logique qui génère l'événement. L'élément d'interface utilisateur est capable de déléguer le traitement d'un événement au morceau de code séparé. Dans ce modèle, l'écouteur doit être enregistré auprès de l'objet source afin que l'écouteur puisse recevoir la notification d'événement. C'est un moyen efficace de gérer l'événement, car les notifications d'événements sont envoyées uniquement aux écouteurs qui souhaitent les recevoir.

Les étapes de la gestion des événements

  • L'utilisateur clique sur le bouton et l'événement est généré.

  • Désormais, l'objet de la classe d'événements concernée est créé automatiquement et les informations sur la source et l'événement sont renseignées dans le même objet.

  • L'objet événement est transmis à la méthode de la classe d'écouteur enregistrée.

  • la méthode est maintenant exécutée et retourne.

Points à retenir sur l'auditeur

  • Afin de concevoir une classe d'écouteur, nous devons développer des interfaces d'écoute. Ces interfaces d'écoute prévoient des méthodes de rappel abstraites publiques qui doivent être implémentées par la classe d'écoute.

  • Si vous n'implémentez pas les interfaces prédéfinies any if, votre classe ne peut pas agir en tant que classe d'écoute pour un objet source.

Méthodes de rappel

Ce sont les méthodes fournies par le fournisseur d'API et définies par le programmeur d'application et appelées par le développeur d'application. Ici, les méthodes de rappel représentent une méthode d'événement. En réponse à un événement, java jre lancera la méthode de rappel. Toutes ces méthodes de rappel sont fournies dans les interfaces d'écoute.

Si un composant veut qu'un auditeur écoute ses événements, la source doit s'enregistrer auprès de l'auditeur.

Exemple de gestion d'événements

Créez le programme Java suivant en utilisant n'importe quel éditeur de votre choix dans say D:/ > AWT > com > tutorialspoint > gui >

AwtControlDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;

public class AwtControlDemo {

   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;

   public AwtControlDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtControlDemo  awtControlDemo = new AwtControlDemo();
      awtControlDemo.showEventDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

      controlPanel = new Panel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }

   private void showEventDemo(){
      headerLabel.setText("Control in action: Button"); 

      Button okButton = new Button("OK");
      Button submitButton = new Button("Submit");
      Button cancelButton = new Button("Cancel");

      okButton.setActionCommand("OK");
      submitButton.setActionCommand("Submit");
      cancelButton.setActionCommand("Cancel");

      okButton.addActionListener(new ButtonClickListener()); 
      submitButton.addActionListener(new ButtonClickListener()); 
      cancelButton.addActionListener(new ButtonClickListener()); 

      controlPanel.add(okButton);
      controlPanel.add(submitButton);
      controlPanel.add(cancelButton);       

      mainFrame.setVisible(true);  
   }

   private class ButtonClickListener implements ActionListener{
      public void actionPerformed(ActionEvent e) {
         String command = e.getActionCommand();  
         if( command.equals( "OK" ))  {
            statusLabel.setText("Ok Button clicked.");
         }
         else if( command.equals( "Submit" ) )  {
            statusLabel.setText("Submit Button clicked."); 
         }
         else  {
            statusLabel.setText("Cancel Button clicked.");
         }  	
      }		
   }
}

Compilez le programme à l'aide de l'invite de commande. Aller àD:/ > AWT et tapez la commande suivante.

D:\AWT>javac com\tutorialspoint\gui\AwtControlDemo.java

Si aucune erreur ne survient, cela signifie que la compilation est réussie. Exécutez le programme en utilisant la commande suivante.

D:\AWT>java com.tutorialspoint.gui.AwtControlDemo

Vérifiez la sortie suivante