Classe Event

 Chaque événement aboutit à la création d'un objet Event qui inclus entre autre le type d'événement et l'objet concerné. Lorsque l'événement se produit, l'objet Event est passé en paramètre de la méthode handleEvent(). Cette méthode peut traiter tous les types d'événements.

D'autres méthodes telles que : mouseEnter(), mouseExit(), mouseMove(), mouseDown(), mousedrag(), mouseUp, keyDown(), keyUp(), gotFocus(), lostFocus peuvent permettre de répondre à des événements précis.

Enfin les composants de base tels que Button, Checkbox, List, MenItem, et TextField produisent des
événements d'action. Ils le font quand l'utilisateur indique que le contrôle doit déclencher une action
(clic sur bouton par exemple) , une méthode action() est alors implémentée. (Voir exemple d'application)

 Attributs

Object arg
        // Objet associé à l'événement, qui dépend de l'événement considéré.

 int clickCount
        // Nombre de clics consécutifs pour un événement MOUSE_DOWN. Sinon vaut 0.

Event evt
        // Evénement suivant, lorsque les événements forment une liste chaînée.

int id
        // Type de l'événement. Les valeurs possibles sont énumérées dans le tableau ci-après.
        // Chacune d'elles est définie me une constante de la classe Event et peut être utilisée directement.
        // Si dans la méthode handleEvent, l'événement est désigné par evt, un test écrit
        // evt. id==Event.WINDOW_DESTROY permet de savoir si la fenêtre ante vient d'être fermée par l'utilisateur.

 
Nom de la constante
Valeur
Signification
ACTION_EVENT 1001 une action a été déclenchée 
GOT_FOCUS 1004 un composant a reçu le focus
KEY_ACTION 403 une touche d'action a été pressee voir variable key
KEY_ACTION_RELEASE 404 une touche d'action a été relachée
KEY_PRESS 401 une touche a été pressée, la variable key en contient le code
KEY_RELEASE 402 une touche a été relâchée, la variable key en contient le code
LIST_DESELECT 702 un élément de liste a été désélectionné 
LIST_SELECT 701 un élément de liste a été sélectionné
LOAD_FILE 1002 un fichier va être chargé
LOST_FOCUS 1005 un composant à perdu le focus
MOUSE_DOWN 501 le bouton de la souris a été pressé, voir modifiers
MOUSE_DRAG 506 l'utilisateur a fait glisser la souris
MOUSE_ENTER 504 le pointeur de la souris est entré dans une zone contrôlée par un composant
MOUSE_EXIT 505 le pointeur de la souris a quitté une zone contrôlée par un composant
MOUSE_MOVE 503 la souris a été déplacée
MOUSE_UP 502 le bouton de la souris a été relâché, voir modifiers
SAVE_FILE 1003 un fichier va être enregistré
SCROLL_ABSOLUTE 605 le curseur d'une barre de défilement a été déplacé
SCROLL_LINE_DOWN 602 l'utilisateur a cliqué sur la flèche orientée vers le BAS (ou vers la droite) d'une barre de défilement
SCROLL_LINE_UP 601 l'utilisateur a cliqué sur la flèche orientée vers le haut (ou vers la gauche) d'une barre de défilement
SCROLL_PAGE_DOWN 604 l'utilisateur a cliqué dans la barre de défilement pour 
descendre d'une page
SCROLL_PAGE_UP 603  l'utilisateur a cliqué dans la barre de défilement pour remonter d'une page
WINDOW_DEICONIFY 204 une fenêtre a été restaurée
WINDOW_DESTROY 201 une fenêtre a été fermée
WINDOW_EXPOSE 202 une fenêtre a été exposée
WINDOW_ICONIFY 203 une fenêtre a été réduite en icône
WINDOW_MOVED 205 une fenêtre a été déplacée
int key
        // code de l atouche pressée dans un événement clavier. Si la valeur id a la valeur KEY_ACTION ou
        // KEY_ACTION_RELEASE, la vairable contient l'un des codes suivants :
 
Nom de la constante
Valeur
Touche
DOWN 1005
END 1001 FIN
F1 1008
F2 1009
F3 1010
F4 1011
F5 1012
F6 1013
F7 1014
F8 1015
F9 1016
F10 1017
F11 1018
F12 1019
HOME 1008 ORIGINE
LEFT 1006
PGDN 1003 PgPréc]
PGUP 1002 PgSuiv]
RIGHT 1007
int modifiers
        // Etat des touches de modification, obtenu par combinaison OR lorsque plusieurs touches
        // sont actives. Si l'un des événements MOUSE_DOWN, MOUSE_DRAG ou MOUSE_UP
        // a eu lieu, la valeur ALT_MASK indique que le bouton central de la souris est impliqué,
        // et META_MASK que le bouton de droite est impliqué. Le tableau suivant donne la liste
        // des valeurs possibles :
 
Nom de la constante
Valeur
Touche
ALT_MASK 8 Alt
CTRL_MASK 2 Ctrl
SHIFT_MASK 1 Maj
META_MASK 4 Echap
Object target
        // Contient l'objet cible

long when
        // Instant de déclenchement de l'événement

int x
        // Abscisse de l'événement

int y
        // Ordonnée de lévénement

Constructeurs

Event(Objed target, int id, Object arg)
        // Crée un événement initialisé avec les paramètres target, id et arg.
Event(Object target, long when, int id, int x, int y, int key, int modifiers)
        // Crée un événement initialisé avec les paramètres target, when, id, x, y, key et modifiers.
        // La variable arg prend la valeur null .
Event(Object target, long when, int id, int x, int y, int key, int modifiers, Object arg)
        // Crée un événement initialisé avec les paramètres target, when, id, x, y, key et modifiers et arg.

Quelques méthodes

boolean controlDown()
        // Renvoie true si la touche Ctrl est pressée.
boolean metaDown()
        // Renvoie true si la touche Echap est pressée.
boolean shiftDown()
        // Renvoie true si la touche Maj est pressée.
String toString()
        // Renvoie une chaîne de caractères qui représente l'événement.
void translate(int dx, int dy)
        Ajoute le déplacement (dx, dy) aux coordonnées x et y de l'événement.

La gestion des événements

import java.awt.*;   //jdk1.02

public class Fevent extends Frame {
  GridLayout gl;
  TextField t0, t1, t2;
  Button Cube, Fermer ;
  Choice c ;

  public Fevent() { // Constructeur
     Fermer = new Button("Fermer");
     Cube = new Button("Cube");
     t0 = new TextField();      t1 = new TextField();      t2 = new TextField();
     c = new Choice();
     gl= new GridLayout(2,3);
     // Le gridlayout vient se confondre avec la fenêtre
     setLayout(gl);
     add(c);        add(t0);        add(Fermer);        add(Cube);        add(t1);        add(t2);
     // remplissage de la zone de liste
     c.addItem("Vannes");  c.addItem("Lorient");   c.addItem("Brest");   c.addItem("Paris");
  } 

  public boolean handleEvent(Event e)  {// Gestion des événements
  if (e.id == Event.WINDOW_DESTROY)  {
      System.exit(0) ; 
      }
      return super.handleEvent(e) ;
  } 

  public boolean action(Event e, Object arg)  { 
  // Pour chaque objet on peut aussi tester en plus, le type
  // d'évênement qui s'est produit : if (e.id == TypeEvenement) ...
  if (e.target == Fermer) {
      System.exit(0) ;
     }
  if (e.target == c)  {
     t0.setText(c.getSelectedItem());
     }
   if (e.target == Cube) {
     try {// parseInt : méthode de la classe Integer converti une chaine
             //en entier, la convertion doit être soumise à condition en
             // cas d'erreur de saisie   (saisie de caractères par exemple)
            int isource = Integer.parseInt(t1.getText());
            isource = isource * isource * isource;
           // ssource récupère la valeur entière de isource
            String ssource = new Integer(isource).toString();
            t2.setText(ssource);
            t2.setBackground(Color.cyan);
           }
     catch (NumberFormatException nfe) {};
     }
  return true;
  } 

static public void main(String[] args)  {
    Fevent f = new Fevent();
    f.setTitle("Fenêtre avec gridLayout");
    f.resize(500,400);
    f.show();
    f.pack();
  }
}

  A l'exécution,  Un clic sur Fermer                    Ecran après sélection dans la liste déroulante c,
  permet de fermer la fenêtre.                               saisie d'un chiffre en t1 et clic sur Cube.