NOTA! Questo sito utilizza i cookie e tecnologie simili.

Se non si modificano le impostazioni del browser, l'utente accetta. Per saperne di piu'

Approvo

Guida Java 2D - Capitolo 04: La gestione degli eventi (prima parte, teorica): listener, adapter.

 

In questo capitolo esamineremo la 'filosofia' che sta alla base del meccanismo di gestione degli eventi AWT.

Per il momento esprimeremo solo dei 'concetti': per il codice e gli esempi, dovremo aspettare di conoscere, prima, le componenti della GUI.

 

 

La GUI delle applicazioni è 'sempre all'erta': in qualunque momento, l'utente può cliccare su una componente o premere un tasto della tastiera, e la GUI deve intercettare tali eventi e gestirli; non solo: esistono anche eventi time-driven, generati da thread eseguiti in parallelo (o... pseudo-parallelo), che non dipendono dall'utente ma che implicano un aggiornamento della GUI.

 

Tutti queste considerazioni stanno alla base del paradigma di programmazione orientata agli eventi.

 

I linguaggi di programmazione implementano in vari modi, spesso molto differenti tra loro, tale paradigma.

 

Java prevede particolari oggetti, i listener (lett.: 'ascoltatori'), che vengono 'avvisati' dal sistema quando si verifica un evento che li riguarda (es.: il listener degli eventi da tastiera verrà invocato quando l'utente premerà, appunto, un tasto della tastiera) e che hanno il compito di gestire tali eventi (ovviamente, l'implementazione del metodo o dei metodi di gestione spetta al programmatore !).

 

La relazione componente-listener è di tipo molti-a-molti: un componente può avere più listener che, a loro volta, possono essere 'registrati' presso più componenti (è possibile, ad esempio, utilizzare un oggetto contenitore come listener e registrarvi tutti gli oggetti GUI in esso contenuti, per gestirne gli eventi).

 

 

 

I listener sono interfacce da implementare, il che significa che spesso siamo 'obbligati' a riscrivere certi metodi.

 

In futuro prenderemo in esame tali listener singolarmente e vedremo quali metodi riscrivere di volta in volta; a volte, comunque, non sarà necessario riscrivere TUTTI i metodi 'obbligatori' di un listener (in certi casi, anche sette), avvalendosi di particolari classi (non interfacce !) dette adapter.

 

Un adapter è una classe che implementa un'interfaccia, lasciando però vuoti i corpi dei metodi da riscrivere 'obbligatoriamente'; se il programmatore avrà, poi, bisogno di implementare uno di questi metodi, potrà riscriverlo (overriding).

 

Considerazione finale: ricordare tutti gli eventi, i listener, i metodi e gli adapter è praticamente impossibile e poco utile (potrebbero cambiare con una nuova versione del linguaggio !): è indispensabile far uso della documentazione ufficiale.

 

Per concludere, ecco qui (riassunta) la gerarchia di eventi di AWT:

Java2D---04

 

La tabella seguente, invece, riassume le associazioni eventi-listener-adapter presenti in AWT:

EVENTO LISTENER ADAPTER
ActionEvent ActionListener  
AdjustementEvent AdjustementListener  
ComponentEvent ComponentListener ComponentAdapter
ContainerEvent ContainerListener ContainerAdapter
FocusEvent FocusListener FocusAdapter
KeyEvent KeyListener KeyAdapter
MouseEvent MouseListener, MouseMotionListener MouseAdapter, MouseMotionAdapter
TextEvent TextListener  
WindowEvent WindowListener WindowAdapter

 

 
Vai all'inizio della pagina