Panoramica eventi swing

6
 Panoramica sugli eventi swing Per gestire gli eventi generati da un componente occorre conoscer e: 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 estesa 1 ; 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 or igi ne dell'e ven to stess o; esso ha come par ametro 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 pe r reg istrare il ril ev atore presso il pu lsante è addActionListener. Riassumendo: TIPO EVENTO ActionEvent INTERFACCIA ActionListener METODI DELL'INTERFACCIA void actionPerformed(ActionEvent e) METODO ADD addActionListener In generale: il tipo di evento è TipoeventoEvent; l'interfaccia è Tipoevento Listener; il metodo add è addTipoevento Listener Gli eventi di azione (Action) sono molto comuni e vengono generati dall’utente, 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 all’url http://download.orac le.com/javase/tutor ial/uiswing/events /api.html. 1  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. Bocchi Cinzia ultimo aggiornamento: 06/11/2011 1

description

Una panoramica sui tipi di eventi in Java e la loro gestione.

Transcript of Panoramica eventi swing

Page 1: Panoramica eventi swing

5/11/2018 Panoramica eventi swing - slidepdf.com

http://slidepdf.com/reader/full/panoramica-eventi-swing 1/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 classerilevatore 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:

TIPO EVENTO ActionEventINTERFACCIA ActionListenerMETODI DELL'INTERFACCIA void actionPerformed(ActionEvent e)METODO ADD addActionListener

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 dall’utente, peresempio premendo un pulsante o premendo il tasto invio dopo aver inserito del testoin una casella di testo; tuttavia, non sono gli unici. Nel seguito saranno presentatebrevemente alcune altre tipologie di eventi.Un elenco completo è reperibile all’urlhttp://download.oracle.com/javase/tutorial/uiswing/events/api.html.

1

Una classe adapter estende una interfaccia e ne implementa tutti i metodi, senza però far compiere ad essi qualcosa diutile. 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.

Bocchi Cinziaultimo aggiornamento: 06/11/2011

1

Page 2: Panoramica eventi swing

5/11/2018 Panoramica eventi swing - slidepdf.com

http://slidepdf.com/reader/full/panoramica-eventi-swing 2/5

 

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 origineda 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 uncomponente di testo (caret ) si sposta o quando, per esempio, si inserisce o rimuovetesto. Gli eventi caret sono generati da componenti che sono sottoclassi diJTextComponent.

TIPO EVENTO CaretEventINTERFACCIA CaretListenerMETODI DELL'INTERFACCIA void caretUpdate(CaretEvent e)METODO ADD addCaretListener

• void caretUpdate(CaretEvent e)

Chiamato quando la posizione del cursore si modifica.

Metodi utili della classe CaretEvent

public Object getSource()

Restituisce l’oggetto su cui si è verificato l’evento. Ereditato da EventObject.

Eventi Change

Gli eventi change si verificano quando un componente subisce una modifica. L’eventonon notifica che cosa è cambiato ma solo che si è verificato un cambiamento

TIPO EVENTO ChangeEventINTERFACCIA ChangeListenerMETODI DELL'INTERFACCIA void stateChanged(ChangeEvent e)METODO ADD addChangeListener

• void stateChanged(ChangeEvent e)

Invocato quando la sorgente dell’evento cambia il suo stato.

Bocchi Cinziaultimo aggiornamento: 06/11/2011

2

Page 3: Panoramica eventi swing

5/11/2018 Panoramica eventi swing - slidepdf.com

http://slidepdf.com/reader/full/panoramica-eventi-swing 3/5

 

Metodi utili della classe ChangeEvent

public Object getSource()Restituisce l’oggetto su cui si è verificato l’evento. Ereditato da EventObject.

Eventi Item

Gli eventi item sono generati da componenti che implementano l’interfacciaItemSelectable, come pulsanti, caselle di controllo e caselle combinate.

TIPO EVENTO ItemEventINTERFACCIA ItemListenerMETODI DELL'INTERFACCIA void itemStateChanged(ItemEvent e)METODO ADD addItemListener

• 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 l’evento.

public int getStateChange()Restituisce un intero che rappresenta lo stato del componente (SELECTED oDESELECTED).

Eventi Window

Gli eventi Window si verificano quando si agisce su una finestra (un frame o unafinestra di dialogo), per esempio aprendola, chiudendola, riducendola a icona e cosìvia. I gestori di eventi sulle finestre sono tre: WindowListener, WindowFocusListener eWindowStateListener.

L’interfaccia WindowListener è comunemente usata per specificare ilcomportamento di una finestra all’atto della sua chiusura. Per esempio, prima dichiudere la finestra potrebbe essere utile salvare i dati o intraprendere altre azioni.

L’interfaccia WindowFocusListener contiene metodi che rilevano quando unafinestra ottiene il focus o lo perde.

L’interfaccia WindowStateListener ha un solo metodo per rilevare le modifiche allostato della finestra, come quando la finestra viene ridotta a icona o massimizzata ecosì via.

Bocchi Cinziaultimo aggiornamento: 06/11/2011

3

Page 4: Panoramica eventi swing

5/11/2018 Panoramica eventi swing - slidepdf.com

http://slidepdf.com/reader/full/panoramica-eventi-swing 4/5

 

Quando si desidera rilevare solo le modifiche allo stato di una finestra, convieneutilizzare WindowStateListener al posto di WindowListener per due motivi: ha solo unmetodo da implementare e fornisce supporto per la massimizzazione.Inoltre, WindowsListener non è necessaria neanche per gestire gli eventi di chiusura diuna finestra poiché allo scopo è sufficiente utilizzare il metodo

setDefaultCloseOperation .

WindowListener è usata comunemente per fermare un thread (es., un’animazione),rilasciando le risorse impegnate, quando una finestra viene ridotta a icona, oppure perfar ripartire il thread quando la finestra viene nuovamente aperta.

WindowListener

TIPO EVENTO WindowEventINTERFACCIA WindowListenerMETODI DELL'INTERFACCIA 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)

METODO ADD addWindowListener

• void windowActivated(WindowEvent e)

Invocato quando una finestra diventa la finestra attiva.

• void windowClosed(WindowEvent e)

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)

Invocato quando una finestra non è più la finestra attiva.

• void windowDeiconified(WindowEvent e)

Invocato quando una finestra passa dallo stato iconizzato a quello normale.

• void windowIconified(WindowEvent e)

Invocato quando una finestra passa dallo stato normale a quello iconizzato.

• void windowOpened(WindowEvent e)

Invocato quando una finestra viene resa visibile per la prima volta.

Al posto dell’interfaccia WindowListener si può utilizzare la classe adapterWindowAdapter, per evitare di implementare tutti i metodi.

Metodi utili della classe WindowEvent

public Window getWindow()

Bocchi Cinziaultimo aggiornamento: 06/11/2011

4

Page 5: Panoramica eventi swing

5/11/2018 Panoramica eventi swing - slidepdf.com

http://slidepdf.com/reader/full/panoramica-eventi-swing 5/5

 

Restituisce l’oggetto che ha generato l’evento.

WindowStateListener

TIPO EVENTO WindowStateEventINTERFACCIA WindowStateListenerMETODI DELL'INTERFACCIA void windowGainedFocus(WindowEvent e)

void windowLostFocus(WindowEvent e)METODO ADD addWindowStateListener

• void windowGainedFocus(WindowEvent e)

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

• void windowLostFocus(WindowEvent e)

Invocato quando la finestra perde il focus.

WindowFocusListener

TIPO EVENTO WindowFocusEventINTERFACCIA WindowFocusListenerMETODI DELL'INTERFACCIA void windowStateChanged(WindowEvent e)

METODO ADD 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 spedisciuna lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.

Bocchi Cinziaultimo aggiornamento: 06/11/2011

5