Fiecare aplicație care are o interfață grafică de utilizator nu poate face fără butoane. În Java Swing, butonul este reprezentat de clasa JButton. Butonul are diferite metode pentru configurarea sa - setarea inscripției pe JButton, setarea pictogramei, alinierea textului, setarea dimensiunii și așa mai departe. În plus, dezvoltatorul trebuie să stea pe ascultătorul JButton, care va rula de îndată ce utilizatorul face clic pe buton. Cum se face acest lucru? Să vorbim despre asta mai jos.
Anterior am scris că toate interacțiunile cu aplicația se bazează pe evenimente. JButton nu face excepție. De îndată ce utilizatorul face clic pe buton, se creează un eveniment ActionEvent, care este transmis către ascultătorii butonului. Pentru a organiza ascultătorul, Swing oferă interfața ActionListener care trebuie implementată. Interfața ActionListener necesită numai punerea în aplicare a uneia dintre metodele - acțiunePerformat. Un exemplu de clasă care implementează interfața ActionListener este prezentat mai jos.
După ce manipulatorul este creat, trebuie să fie adăugat la buton. Aceasta se face folosind metoda addActionListener. Ca parametru, handler-ul este transmis metodei. De exemplu, o puteți face astfel:
Aici vom crea un buton mai întâi. Apoi, vom crea o instanta ascultătorului nostru TestActionListener, și apoi adăugați-l ca un ascultător la buton, folosind handler de apel addActionListener și-i dea o copie. În general, studenții pot fi o sumă nedeterminată. Dacă vom avea nevoie de doi sau mai mulți studenți, care vor trebui să răspundă în mod diferit la apăsarea butonului, apoi pentru fiecare apel addActionListener. În plus, s-ar putea vreodată nevoie să dezactivați ascultător și spune-i că nu mai ascultat clic pe un buton. Acest lucru se poate face folosind metoda removeActionListener. Aici ca parametru va trebui să treacă o trimitere la ascultător, pe care dorim să o eliminați din lista de ascultători butonul JButton.
În cele din urmă, un exemplu de cerere pentru demonstrarea operatorilor unui clic pe butonul JButton.
Ar trebui spus despre câteva momente interesante în opinia mea. Primul este utilizarea comenzii de acțiune. Puteți observa că butoanele apelează metoda setActionCommand, care pentru fiecare buton își transmite propria valoare de șir. Astfel, în aplicație este posibil să se înțeleagă ce buton a fost apăsat, dacă prelucrarea apăsării mai multor butoane efectuează un singur ascultător. Pentru a afla acest lucru, ActionEvent ia o comandă de acțiune folosind metoda getActionCommand.
Al doilea punct este acela că pentru a face față evenimentului apăsând butonul JButton, puteți crea o clasă anonimă care implementează interfața ActionListener. Puteți vedea aici: