CATEGORII DOCUMENTE |
Pentru a intercepta un astfel de eveniment se defineste in applet o metoda action(), cu semnatura:
public boolean action(Event evt, Object arg)
Aceasta metoda action(), ca si metodele de tratare a evenimentelor de mouse sau tastatura, primeste ca argument un obiect ce se refera la evenimentul respectiv ; ea primeste si un al doilea argument, un obiect ce poate fi de orice tip.Tipul acestui al doilea argument e dat de componenta interfetei care a generat actiunea.Mai jos avem prezentate argumentele suplimentare pentru fiecare tip de componenta:
Componenta |
Tipul argumentului |
semnificatia |
butoane |
String |
eticheta butonului |
casete de validare |
Boolean |
totdeauna true |
butoane radio |
Boolean |
totdeauna true |
meniuri de optiuni |
String |
eticheta elementului selectat |
campuri de text |
String |
textul din cadrul campului |
In metoda action() primul lucru facut este testarea componentei care a generat actiunea.Obiectul Event pe care il primim ca argument in apelul action() contine o variabila de instanta numita target, care contine o referinta catre obiectul ce a generat evenimentul.Putem folosi operatorul instanceof pentru a afla ce componenta a generat evenimentul, ca in exemplul de mai jos:
public boolean action(Event evt, Object arg)
In exemplul anterior metoda action putea fi generata de o componenta TextField sau de un meniu de optiuni.
Metoda action() returneaza o valoare booleana, true daca va trata evenimentul si false in caz contrar.
In cazul in care avem mai multe componente din aceeasi clasa - de exemplu butoane - pot apare unele probleme.Toate pot genera actiuni si toate sunt instante ale aceleiasi clase Button.Aici apare utilizarea argumentului suplimentar:folosind comparatii simple de siruri, putem folosi etichete, elemente sau continutul componentei pentru a determina care dintre ele a generat evenimentul.
Un exemplu de astfel de solutie apare in continuare:
public boolean action(Event evt, Object obj)
}
In cazul casetelor de validare sau al butoanelor radio argumentul suplimentar este totdeauna true si nu ne ajuta la diferentiere componentelor.In general nu se prea reactioneaza direct la activarea unei casete de validare sau la apasarea unui buton radio, acestea fiind de obicei selectate si abia apoi valorile lor sunt testate in alt loc, de obicei dupa apasarea unui buton.Daca vrem totusi ca programul sa reactioneze direct la evenimentele amintite putem folosi in locul argumentului suplimentar metoda getLabel() pentru a extrage eticheta casetei de validare si a diferentia astfel intre ele componentele de acest tip.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 987
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved