• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Guida Rilevatori Eventi

TBH

Utente Master
Autore del topic
24 Dicembre 2012
2.134
115
Miglior risposta
0
Oggi continuiamo a parlare di java , in particolare delle interfaccie awt.event che servono per rilevare gli eventi. Ricapitolando brevemente le classi Event descrivono l'evento generato da un origine intercettato e gestito da un Rilevatore.

Prima di passare direttamente a descrivere i singoli rilevatori , le interfaccie sono simili alla classe astratte , possono contenere metodi senza corpo , che vengono successivamente ridefiniti dalla classi concrete.A differenza delle classi astratte , le interfaccie possono definire solo metodi senza corpo, qualcuno si sta chiedendo che senso ha usare le interfaccie dato che sono più limitate (almeno apparentemente delle comuni classe astratte?). Ma ecco il vero problema per il quale bisogna usare le interfaccie : L'ereditarietà in java è limitata rispetto al C++ , in quanto puoi ereditare una sola classe, quindi è un linguaggio che non supporta la multi ereditarietà, chi sta leggendo e conosce il C++ questo limite può rappresentare un enorme problema , ma il "limite" viene raggirato proprio tramite le interfaccie ,in quanto una classe concreta può implementare più interfaccie.
La keyword per le interfaccie è : Interface
La keyword per implementare un interfaccia è : Implements

* Prestare attenzione quando viene implementata un interfaccia ,la classe che l'implementa è obbligata a ridefinire tutti i metodi.

Detto ciò proseguiamo ,analizzando i singoli rilevatori.

ActionListener

Gestisce l'evento ActionEvent. ha un solo metodo ed è il seguente:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

AdjustamentListener

Gestisce l'evento AdjustamentEvent. L'interfaccia definisce un solo metodo
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

ComponentListener

Gestisce l'evento ComponentEvent. sono presenti 4 metodi.
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

ContainerListener

Gestore dell'evento ContainerEvent.

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

FocusListener

Gestore dell'evento FocusEvent. Definisce due metodi
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

ItemListener

Gestore dell'evento ItemEvent.Definisce un solo metodo.

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

KeyListener

Gestore dell'evento KeyEvent.

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

MouseListener & MouseMotionListener

gestisce l'evento MouseEvent. definisce 4 metodi
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

mancano due tipi di eventi che sono dragged e moved, quest'ultimi vengono gestiti da un'altra interfaccia MouseMotionListener, i metodi sono elencati di seguito

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!


MouseWheelEvent
Gestisce l'evento MouseWheelEvent , definisce un unico metodo
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
in genere gestire l'evento della rotellina del mouse non è necessario.

TextListener
Gestisce l'evento TextEvent. Definisce un unico metodo
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!


WindowListener

Gestisce l'evento WindowEvent . definisce sette metodi.
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!


Ora che abbiamo elencato tutte le interfaccie e descritto nelle guide precedenti passiamo a scrivere una semplice applet che cattura gli eventi del mouse.

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

iniziamo ad analizzare il codice , all'inizializzazione dell'applet notiamo:

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

per aggiungere un rilevatore evento bisogna dirgli chi è la nostra origine eventi , in questo caso l'applet stessa , indicata da this, this si riferisce sempre alla classe stessa. Per esempio se volevamo che la nostra applet gestisse l'input da tastiera bastava scrivere in questo modo:

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

quindi la sintassi generale è la seguente .

addNomeInterfaccia(oggetto che genera l'evento)

Un altra cosa che salta all'occhio è il codice Inutile presente nel progetto , per esempio nel caso di

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

come notate queste funzioni vengono ridefinite , ma rimangono senza corpo. Quindi occupano spazio nel codice ,senza avere una reale fine , in quanto quegli eventi non ci interessano. Per rimediare a questo fastidioso problema esistono delle classi "speciali" , le classi Adapter, che vedremo in seguito.
alla prossima :bye:
 
Ti ringrazio come sempre per aver condiviso col forum questa tua guida. È ben dettagliata e completa, continua così! ;)