Panoramica eventi swing
-
Upload
cinzia-bocchi -
Category
Documents
-
view
107 -
download
0
description
Transcript of 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
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
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
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
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