You are on page 1of 5

Panoramica sugli eventi swing

Per gestire gli eventi generati da un componente occorre conoscere: 1. il tipo di evento, che verr passato come parametro ai metodi dell'interfaccia ridefiniti nella classe gestore dell'evento; 2. l'interfaccia implementata dalla classe che gestisce l'evento, o analogamente la classe adapter estesa1; 3. i metodi dell'interfaccia che devono essere ridefiniti all'interno del rilevatore dell'evento; 4. il metodo add che permette di registrare il rilevatore di evento presso l'oggetto origine dell'evento stesso; esso ha come parametro un'istanza della classe rilevatore di evento.

Esempio
Consideriamo l'evento generato da un pulsante JButton quando l'utente vi fa clic sopra con il mouse. 1. Il tipo di evento ActionEvent. Esso verr passato come parametro al metodo actionPerformed. 2. L'interfaccia implementata dalla classe che gestisce l'evento ActionListener. 3. L'interfaccia contiene un unico metodo da ridefinire: il metodo actionPerformed. 4. Il metodo utilizzato per registrare il rilevatore presso il pulsante addActionListener. Riassumendo: ActionEvent ActionListener void actionPerformed(ActionEvent e) addActionListener

TIPO EVENTO INTERFACCIA METODI DELL'INTERFACCIA METODO ADD

In generale: il tipo di evento TipoeventoEvent; l'interfaccia TipoeventoListener; il metodo add addTipoeventoListener Gli eventi di azione (Action) sono molto comuni e vengono generati dallutente, per esempio premendo un pulsante o premendo il tasto invio dopo aver inserito del testo in una casella di testo; tuttavia, non sono gli unici. Nel seguito saranno presentate brevemente alcune altre tipologie di eventi. Un elenco completo reperibile allurl http://download.oracle.com/javase/tutorial/uiswing/events/api.html.

Una classe adapter estende una interfaccia e ne implementa tutti i metodi, senza per far compiere ad essi qualcosa di utile. Invece di implementare una interfaccia e fornire il codice per tutti i metodi, conviene estendere la corrispondente classe adapter e ridefinire solo i metodi che servono effettivamente.

1
Bocchi Cinzia ultimo aggiornamento: 06/11/2011

Metodi utili della classe ActionEvent public Object getSource() Restituisce il riferimento al componente che ha generato l'evento. public String getActionCommand() Restituisce il comando associato all'evento azione. Se l'evento azione ha avuto origine da un pulsante, la stringa di comando equivale all'etichetta del pulsante.

Eventi Caret
Gli eventi caret si verificano quando il cursore che indica il punto di inserimento in un componente di testo (caret) si sposta o quando, per esempio, si inserisce o rimuove testo. Gli eventi caret sono generati da componenti che sono sottoclassi di JTextComponent. CaretEvent CaretListener void caretUpdate(CaretEvent e) addCaretListener

TIPO EVENTO INTERFACCIA METODI DELL'INTERFACCIA METODO ADD

void caretUpdate(CaretEvent e)

Chiamato quando la posizione del cursore si modifica. Metodi utili della classe CaretEvent public Object getSource() Restituisce loggetto su cui si verificato levento. Ereditato da EventObject.

Eventi Change
Gli eventi change si verificano quando un componente subisce una modifica. Levento non notifica che cosa cambiato ma solo che si verificato un cambiamento ChangeEvent ChangeListener void stateChanged(ChangeEvent e) addChangeListener

TIPO EVENTO INTERFACCIA METODI DELL'INTERFACCIA METODO ADD

void stateChanged(ChangeEvent e)

Invocato quando la sorgente dellevento cambia il suo stato.

2
Bocchi Cinzia ultimo aggiornamento: 06/11/2011

Metodi utili della classe ChangeEvent public Object getSource() Restituisce loggetto su cui si verificato levento. Ereditato da EventObject.

Eventi Item
Gli eventi item sono generati da componenti che implementano linterfaccia ItemSelectable, come pulsanti, caselle di controllo e caselle combinate. ItemEvent ItemListener void itemStateChanged(ItemEvent e) addItemListener

TIPO EVENTO INTERFACCIA METODI DELL'INTERFACCIA METODO ADD

void itemStateChanged(ItemEvent e)

Invocato quando cambia lo stato del componente. Metodi utili della classe ItemEvent public Object getItem() Restituisce il componente che ha generato levento. public int getStateChange() Restituisce un intero che rappresenta lo stato del componente (SELECTED o DESELECTED).

Eventi Window
Gli eventi Window si verificano quando si agisce su una finestra (un frame o una finestra di dialogo), per esempio aprendola, chiudendola, riducendola a icona e cos via. I gestori di eventi sulle finestre sono tre: WindowListener, WindowFocusListener e WindowStateListener. Linterfaccia WindowListener comunemente usata per specificare il comportamento di una finestra allatto della sua chiusura. Per esempio, prima di chiudere la finestra potrebbe essere utile salvare i dati o intraprendere altre azioni. Linterfaccia WindowFocusListener contiene metodi che rilevano quando una finestra ottiene il focus o lo perde. Linterfaccia WindowStateListener ha un solo metodo per rilevare le modifiche allo stato della finestra, come quando la finestra viene ridotta a icona o massimizzata e cos via.

3
Bocchi Cinzia ultimo aggiornamento: 06/11/2011

Quando si desidera rilevare solo le modifiche allo stato di una finestra, conviene utilizzare WindowStateListener al posto di WindowListener per due motivi: ha solo un metodo da implementare e fornisce supporto per la massimizzazione. Inoltre, WindowsListener non necessaria neanche per gestire gli eventi di chiusura di una finestra poich allo scopo sufficiente utilizzare il metodo setDefaultCloseOperation. WindowListener usata comunemente per fermare un thread (es., unanimazione), rilasciando le risorse impegnate, quando una finestra viene ridotta a icona, oppure per far ripartire il thread quando la finestra viene nuovamente aperta. WindowListener
TIPO EVENTO INTERFACCIA METODI DELL'INTERFACCIA

METODO ADD

WindowEvent WindowListener void windowActivated(WindowEvent e) void windowClosed(WindowEvent e) void windowClosing(WindowEvent e) void windowDeactivated(WindowEvent e) void windowDeiconified(WindowEvent e) void windowIconified(WindowEvent e) void windowOpened(WindowEvent e) addWindowListener

void windowActivated(WindowEvent e) void windowClosed(WindowEvent e)

Invocato quando una finestra diventa la finestra attiva. Invocato quando una finestra stata chiusa (dispose).

void windowClosing(WindowEvent e)

Invocato quando si chiude una finestra utilizzando il menu di sistema.

void windowDeactivated(WindowEvent e) void windowDeiconified(WindowEvent e) void windowIconified(WindowEvent e) void windowOpened(WindowEvent e)

Invocato quando una finestra non pi la finestra attiva. Invocato quando una finestra passa dallo stato iconizzato a quello normale. Invocato quando una finestra passa dallo stato normale a quello iconizzato. Invocato quando una finestra viene resa visibile per la prima volta. Al posto dellinterfaccia WindowListener si pu utilizzare WindowAdapter, per evitare di implementare tutti i metodi. Metodi utili della classe WindowEvent public Window getWindow() la classe adapter

4
Bocchi Cinzia ultimo aggiornamento: 06/11/2011

Restituisce loggetto che ha generato levento.

WindowStateListener
TIPO EVENTO INTERFACCIA METODI DELL'INTERFACCIA METODO ADD

WindowStateEvent WindowStateListener void windowGainedFocus(WindowEvent e) void windowLostFocus(WindowEvent e) addWindowStateListener

void windowGainedFocus(WindowEvent e)

Invocato quando la finestra ottiene il focus, il che significa che la finestra o un suo sotto-componente, pu ricevere eventi da tastiera.

void windowLostFocus(WindowEvent e)
Invocato quando la finestra perde il focus.

WindowFocusListener
TIPO EVENTO INTERFACCIA METODI DELL'INTERFACCIA METODO ADD

WindowFocusEvent WindowFocusListener void windowStateChanged(WindowEvent e) addWindowFocusListener

void windowStateChanged(WindowEvent e)

Invocato quando lo stato di una finestra subisce modifiche.

Quest'opera stata rilasciata con licenza Creative Commons Attribution-ShareAlike 3.0 Unported. Per leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/by-sa/3.0/ o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.

5
Bocchi Cinzia ultimo aggiornamento: 06/11/2011

You might also like