CATEGORII DOCUMENTE |
Metodele prestabilite prezentate mai sus sunt apelate de o metoda generica de tratare a evenimentelor - handleEvent().La folosirea ei, AWT trateaza in mod generic evenimentele care apar intre componentele aplicatiei sau evenimentele datorate actiunilor utilizatorului.
In metoda handleEvent() se proceseaza evenimentele de baza si se apeleaza metodele despre care am vorbit mai devreme.Pentru a trata si alte evenimente decat cele mentionate deja, pentru a modifica comportamentul implicit de tratare a evenimentelor sau pentru a crea si a transmite propriile evenimente va trebui sa suprascriem metoda handleEvent().Ea are o semnatura de forma:
public boolean handleEvent(Event evt)
Pentru a testa anumite evenimente trebuie sa examinam variabila de instanta id a obiectului Event.Identificatorul de eveniment este un intreg dar clasa in clasa Event este definit un ansamblu de evenimente drept variabile de clasa, ale caror nume pot fi testate in metoda handleEvent().Deoarece aceste variabile de clasa sunt constante intregi poate fi folosita cu succes instructiunea handleEvent().Mai jos avem un exemplu de metoda handleEvent() in care sunt afisate informatii de depanare despre evenimentele de mouse:
public boolean handleEvent(Event evt)
}
Putem testa si urmatoarele evenimente de tastatura:
- Event.KEY_PRESS - generat cand este apasata o tasta (analog cu metoda keyDown())
- Event.KEY_RELEASE - generat la eliberarea unei taste
- Event.KEY_ACTION si Event.KEY_ACTION_RELEASE - generate cand este apasata si respectiv eliberata o tasta functionala (tastele F, directionale, Page Up, Page Down, Home, etc.)
In ceea ce priveste evenimentele de mouse putem testa si in cazul lor mai multe evenimente:
- Event.MOUSE_DOWN - generat la apasarea butonului mouseului (analog cu metoda mouseDown())
- Event.MOUSE_UP - generat cand butonul mouseului este eliberat (analog cu metoda mouseUp())
- Event.MOUSE_MOVE - generat cand mouseul este deplasat (analog cu metoda mouseMove())
- Event.MOUSE_DRAG - generat cand mouseul este deplasat tinandu-se apasat butonul acestuia (analog cu metoda mouseDrag())
- Event.MOUSE_ENTER - generat la intrarea cursorului mouseului pe suprafata appletului sau a unei componente a acestuia (analog cu metoda mouseEnter())
- Event.MOUSE_EXIT - generat cand cursorul mouseului paraseste appletul (analog cu metoda mouseExit())
Mentionam ca la suprascrierea metodei handleEvent() in clasa noastra nici una dintre metodele prestabilite de tratare a evenimentelor nu va mai fi apelata decat daca o vom apela explicit in corpul metodei handleEvent().Cea mai buna modalitate de a rezolva aceasta problema este de a testa evenimentele de care suntem interesati iar daca acestea nu apara sa apelam metoda super.handleEvent() - pentru ca superclasa care defineste metoda sa poata procesa evenimentele.Pentru a exemplifica acest lucru prezentam listingul de mai jos:
public boolean handleEvent(Event evt) else
return super.handleEvent(evt);
}
Mai trebuie retinut ca metoda handleEvent() returneaza si ea o valoare booleana.Valoarea returnata va fi false daca transferam evenimentul unei alte metode (care si ea la randul ei va returna un true sau false) sau true daca tratam evenimentul in corpul metodei noastre.Daca transferam tratarea evenimentului unei superclase metoda respectiva va returna true sau false astfel ca nu trebuie sa mai returnam explicit o valoare.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 882
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved