Clase de evenimente

Clasele de evenimente se găsesc în pachetele java.awt.event și javax.swing.event și formează o ierarhie de clase, care are ca radacină clasa abstractă java.awt.AWTEvent. Aceasta, la rândul ei, extinde clasa java.util.EventObject din pachetul java.util.

Orice eveniment conține următoarele metodele declarate în clasa java.util.EventObject:

    public Object getSource() - care întoarce o referință către obiectul care a generat evenimentul respectiv;
    public String toString() - care întoarce o reprezentare sub forma de șir a obiectului.

Orice eveniment AWT (generat de componente AWT sau JFC/Swing) conține un câmp protejat de tip int numit id, a cărui valoare indică tipul evenimentului. Toate clasele de evenimente conțin câmpuri statice finale de tip int, al căror nume indică tipul de eveniment și a căror valoare este valoarea corespunzătoare a câmpului id. Valoarea acestui câmp se poate obține prin metoda
    public int getId()

Evenimentele pot fi de nivel coborât (low level event) sau semantice. Numele claselor de evenimente de nivel coborât indică fie componenta, fie dispozitivul de intrare care le-a generat, de exemplu: ComponentEvent, WindowEvent, MouseEvent, KeyEvent. Numele claselor de evenimente semantice indică mai curând tipul de eveniment, decât sursa acestuia, de exemplu: ActionEvent, TextEvent. Descrierea claselor de evenimente este dată complet în documentația Java API.

Interfețe și clase adaptoare pentru ascultători de evenimente

Evenimentele generate de surse, sunt captate și tratate de ascultători. Sursele sunt componente ale interfeței grafice care, de regulă, sunt preluate din pachetele de clase ale platformei Java 2, deci nu sunt programate de către programatorul de aplicație, ci doar utilizate de acesta. În schimb, programatorul de aplicație trebuie să creeze clasele de ascultători de evenimente specifice aplicației pe care o dezvoltă. Metodele acestor clase trebuie sa reacționeze la apariția evenimentelor și să execute acțiunile corespunzătoare, conform cu obiectivele aplicației. În consecință, platforma Java 2 nu pune la dispoziție clase ascultătoare predefinite, ci doar interfețele pe care trebuie să le implementeze aceste clase, pentru a putea trata evenimentele pe care le recepționează.

Există câte o interfață de ascultător pentru fiecare clasă de eveniment. De exemplu, pentru ComponentEvent există interfața ComponentListener, pentru WindowEvent exista intefața WindowListener etc.

Pentru a se ușura munca programatorilor, pentru unele interfețe care conțin mai multe metode, se oferă și prototipuri de clase care implementează interfața respectivă, numite adaptoare. De exemplu, clasa WindowAdapter implementează interfața WindowListener, clasa MouseAdapter implementează interfața MouseListener etc.

Adăugarea ascultătoarelor la sursele de evenimente se face prin metode de adăugare corespunzătoare, existente în clasele de surse. De exemplu, pentru a se adăuga la o instanță a clasei Window sau a subclaselor acesteia (de exemplu JFrame) un ascultător de evenimente de fereastră, în clasa Window există metoda
  public void addWindowListener(WindowListener l)

Descrierea completă a interfețelor și adaptoarelor pentru clasele de ascultători de evenimente este dată în documentația Java API.



© Copyright 2000 - Severin BUMBARU, Universitatea "Dunărea de Jos" din Galați