Evenimentele generate de fereastră sunt instanțe ale clasei
WindowEvent și sunt ascultate de instanțe ale unor clase care
implementează interfața WindowListener sau extind clasa WindowAdapter.
Toate aceste clase și interfețe se găsesc în pachetul java.awt.event.
Metodele interfeței WindowListener sunt următoarele: public void windowOpened(WindowEvent e)- fereastra a fost deschisă public void windowClosing(WindowEvent e)- fereastra se închide public void windowClosed(WindowEvent e)- fereastra a fost inchisă public void windowIconified(WindowEvent e)- fereastra a fost iconificată public void windowDeiconified(WindowEvent e)- fereastra a fost deiconificată public void windowActivated(WindowEvent e)- fereastra a fost activată public void windowDeactivated(WindowEvent e)- fereastra a fost dezactivată |
Pentru a se trata evenimentele generate de fereastră, este necesar
să se declare o clasă care implementează interfața WindowListener. În
această clasă se definesc toate metodele interfeței, astfel încât
acestea să execute acțiunile adecvate evenimentelor corespunzătoare.
Exemplu În fișierul Evenim1.java este dat ca exemplu următorul program, în care se urmăresc evenimentele generate de o fereastră din clasa JFrame.
Pentru ascultătorul de fereastră a fost creată clasa imbricată statică AscultFereastra, în care sunt implementate toate metodele interfeței WindowListener. În cazul de față, aceste metode nu fac altceva, decât că afișează pe terminal un mesaj privind evenimentul care s-a produs. Acest mesaj conține și evenimentul interceptat e, convertit în șir. În metoda main(), se construiesc instanțele claselor JFrame și AscultFereastra, după care se adaugă ascultătorul af la fereastra iug prin metoda addWindowListener(). Se stabilesc, de asemenea, dimensiunea și poziția ferestrei și se face fereastra vizibilă. După ce a fost pusă aplicația în execuție, pe ecran apare o fereastră cu titlul "Urmarire evenimente fereastra". La terminal putem urmări succesiunea evenimentelor care se produc. Ca și în exemplul precedent, ieșirea din aplicație se face de la tastatura, prin comanda <Control>-C. |
Remarcăm că, în exemplul de mai sus, a fost necesar ca, în clasa care implementează interfata WindowListener, să se definească toate metodele acesteia. Dacă ne sunt necesare numai unele din aceste metode, este preferabil sa obținem clasa AscultFereastra prin extinderea clasei WindowAdapter. Această ultimă clasă conține toate metodele interfeței WindowListener, dar corpurile lor sunt vide, deci metodele nu fac nimic. În acest fel, în clasa derivată este suficient să redefinim numai metodele care ne sunt necesare, ca în exemplul din secțiunea următoare.
Exemplu În fișierul Inchidere.java se dă o modificare a clasei Evenim1 din exemplul precedent.
În acest program, în afară de modificarea numelor claselor,
s-au mai făcut următoarele modificări: |