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:
AdjustamentListener
Gestisce l'evento AdjustamentEvent. L'interfaccia definisce un solo metodo
ComponentListener
Gestisce l'evento ComponentEvent. sono presenti 4 metodi.
ContainerListener
Gestore dell'evento ContainerEvent.
FocusListener
Gestore dell'evento FocusEvent. Definisce due metodi
ItemListener
Gestore dell'evento ItemEvent.Definisce un solo metodo.
KeyListener
Gestore dell'evento KeyEvent.
MouseListener & MouseMotionListener
gestisce l'evento MouseEvent. definisce 4 metodi
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
MouseWheelEvent
Gestisce l'evento MouseWheelEvent , definisce un unico metodo
in genere gestire l'evento della rotellina del mouse non è necessario.
TextListener
Gestisce l'evento TextEvent. Definisce un unico metodo
WindowListener
Gestisce l'evento WindowEvent . definisce sette metodi.
Ora che abbiamo elencato tutte le interfaccie e descritto nelle guide precedenti passiamo a scrivere una semplice applet che cattura gli eventi del mouse.
iniziamo ad analizzare il codice , all'inizializzazione dell'applet notiamo:
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:
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
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:
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!
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: