Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


TRATAREA EVENIMENTELOR PRIN METODA GENERICA

java



+ Font mai mare | - Font mai mic



TRATAREA EVENIMENTELOR PRIN METODA GENERICA

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



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 810
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved