Dacă am privi din punct de vedere al codului, evenimentul nu este altceva decât o metodă care este executată atunci când utilizatorul acționează o componentă de pe suprafața aplicației.
Dacă vorbim de evenimentul click pe un buton, sau oricare altă componentă, atunci metoda invocată va fi actionPerformed()care aparține interfeței ActionListener. Deci, metodele invocate la generarea unui eveniment fac parte din interfețe specifice evenimentului generat.
Orice eveniment în Java este o instanță a unei subclase a clasei Event. La executare click pe o componentă buton, se va crea de fapt o instanță a clasei ActionEvent. Amintind principiul moștenirii în Java, o clasă extinde o singură clasă și numai una, în cazul în care clasa cu care lucrăm extinde deja o clasă nu vom putea extinde și clasa evenimentului generat pentru a oferi mecanism de tratare a acestuia. De aceea fiecărei clase de evenimente îi corespunde o interfață ce grupează evenimentele specifice unui anumit domeniu, numite și interfețe de ascultare sau interfețe listener. Cât despre interfețe, o clasă Java, poate implemente orice număr de interfețe.
De exemplu, evenimentele tastaturei, sunt de fapt instanțe a clasei KeyEvent căreia îi corespunde interfața KeyListener ce conține mai multe metode de tratare a evenimentelor tastaturei.
Voi prezenta câteva clase de evenimente și interfețele corespunzătoare acestora, situații când aceste clase sunt instanțiate, și componente ce pot genera evenimentele grupate de interfețele date:
Orice clasă care tratează evenimente trebuie să implementeze obligatoriu metodele interfețelor de ascultare sau interfețelor Listener corespunzătoare evenimentelor care le tratează.
În tabelul de mai jos voi reprezenta metodele conținute de aceste interfețe:
În postarea https://musteatadidactic.blogspot.com/2019/02/tratarea-evenimentelor-java.html am explicat cum are loc tratarea evenimentului click pe o componentă de tip buton. Analogic se respectă și algoritmul de tratare a oricărui alt tip de eveniment. Dacă se va dori tratarea evenimentului generat la selectarea unei opțiuni dintr-o componentă de tip Choice, atunci se va implementa interfața ItemListener și se va supradefini metoda itemStateChanged(). De fapt, codul conținut de această metodă va fi executat la generarea acestui tip de eveniment.
E simplu atunci când se lucrează cu interfețe care conțin o singură metodă. În cazul în care aceasta va conține mai multe metode, ca de exemplu WindowListener, atunci va fi necesar de supradefinit toate metodele interfețelor chiar dacă nu se dorește acest lucru. Orice clasă ce implementează o interfață trebuie să conțină corp, să supradefinească, să facă override, :) :) , după cum menționează elevii mei dragi, la toate metodele interfeței.
Ce facem în cazul în care nu dorim acest lucru?
Ok! Voi veni în zilele următoare cu o postare despre clasele Adapter !
Sper că această postare vă este utilă.
Este binevenit orice comentariu!
Să aveți parte de o zi extraordinară !!!!!