Documente Academic
Documente Profesional
Documente Cultură
In Java, fiecare component\ este generatoare de evenimente. Printre acestea se num\r\ [i evenimentele generate de ap\sarea tastelor. O component\ produce evenimete referitoare la tastatur\ n momentul n care este activ\, mai bine zis n momentul n care este ]inta intr\rii de la tastatur\ (are InputFocus). O component\ prime[te controlul tastaturii prin una din metodele : apelul explicit al metodei RequestFocus() al clasi printr-un click de mouse pe suprafa]a sa prin trecerea de la o component\ la alta cu utiliznd tasta <Tab> (ciclare) sau combina]ia <Shift>+<Tab> (ciclare n ordine invers\); componenta la care se opre[te ciclarea este cea care va primi controlul Obs1: Ordinea n care se face ciclarea este determinat\ de ordinea n care s-au ad\ugat componentele n containere [i containerele n fereastr\. Fiecare component\ are astfel asociat\ o valoare unic\ : tab order Obs2: Componentele pentru care metoda boolean isFocusTraversable() returneaz\ false sunt ignorate n procesul de ciclare prin intermediul tastei <tab> . Ele pot totu[i s\ devin\ ]inta intrarii de la tastaur\ prin una din celelate dou\ metode. Folosirea evenimentelor generate de o component\ la ac]ionarea unor taste se realizeaz\ prin intermediul clasei KeyEvent [i interfe]ei KeyListener. Clasa java.awt.event.KeyEvent Variabile Constante prin intermediul c\rora sunt referite tastele
VK_SHIFT VK_CONTROL VK_ENTER VK_BACK_SPACE VK_TAB VK_CAPS_LOCK VK_ALT
Component
VK_NUM_LOCK VK_SPACE VK_UP VK_DOWN VK_PAGE_UP VK_PAGE_DOWN VK_F1, ..., VK_F12 VK_NUMPAD0, ..., VK_NUMPAD9 VK_A, ..., VK_Z VK_0, ..., VK_9 //etc
VK_LEFT VK_HOME
VK_RIGHT VK_END
Metode
boolean isActionKey( ) char getKeyChar( ) void setKeyChar( char keyChar ) int getKeyCode( ) void setKeyCode( int keyCode ) static java.lang.String getKeyModifiersText( int modifiers ) Returneaza numele unui modificator : Shift, Ctrl+Shift, etc. static java.lang.String getKeyText( int keyCode ) Returneaza un sir cu numele tastei : HOME, F1, etc. void setModifiers( int modifiers )
Metodele pe care trebuie s\ le implementeze obiectul receptor care ascult\ evenimentele produse de ap\sarea tastelor pentru o anumit\ component\ sunt specificate de interfa]a KeyListener
public interface KeyListener extends java.util.EventListener { // Metode public void keyTyped( java.awt.event.KeyEvent e ); public void keyPressed( java.awt.event.KeyEvent e ); public void keyReleased( java.awt.event.KeyEvent e ); }
Obs: Diferen]a ntre keyTyped [i keyPressed este c\ primul eveniment este generat de ap\sarea unei taste urmat\ de eliberarea ei, n timp ce al doilea doar de ap\sarea tastei. A[adar, structura general\ a unei componente care genereaz\ evenimente referitoare la tastatur\ [i care necesit\ prelucrare este :
class Componenta { //... Receptor r = new Receptor(); this.addKeyListener(r); //... } class Receptor implements KeyListener { //...