• 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 Gestione eventi - Gli eventi parte 2

TBH

Utente Master
Autore del topic
24 Dicembre 2012
2.134
115
Miglior risposta
0
Parte 1: Applet
Parte 2:Eventi Parte I

L'ultima volta ci eravamo fermati ad analizzare la classe astratta inputevent che è la superclasse di eventi molto ricorrenti. Appunto MouseEvent-KeyEvent

MouseEvent

MouseEvent presenta molte costanti che rappresentano il tipo d'evento generato.
MOUSE_CLICKED : Click del mouse
MOUSE_MOVED : Movimento del mouse
MOUSE_PRESSED : Il tasto del mouse è stato premuto
MOUSE_RELEASED : il tasto del mouse è stato rilasciato
MOUSE_DRAGGRED : il mouse è stato trascinato
MOUSE_ENTERED : il mouse è entrato in un componente
MOUSE_EXITED : il mouse è uscito dal componente
MOUSE_WHEEL : è stata usata la "rotellina" del mouse

Il costruttore di MouseEvent è mostrato di seguito
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

orig rappresenta il componente che ha generato l'evento.
tipo : una delle costanti sopracitate
when : rappresenta il momento , l'ora in cui è avvenuto l'evento
modificatori : rappresenta uno dei modificatori di inputEvent.
x: coordinate x del puntatore
y: coordinate y del puntatore
click : numero di click effettuati
activePopup : indica se la pressione del mouse ha generato l'apertura di un menu o il cambiamento di stato di un'altro oggetto.


Spesso quando si gestisce l'evento del click del mouse oppure quando entra in un componente è utile sapere anche la posizione relativa alla finestra che può essere un applet o un Frame . Per ottenere le coordinate usare i seguenti metodi :
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

i primi due metodi sono di facile comprensione , restituiscono le coordinate x e y del puntatore, l'ultimo metodo invece restituisce un riferimento di tipo Point , il quale contiene a sua volta due membri interni : x e y, dal quale si può ottenere ugualmente la posizione del mouse. La classe point , come tutte le classi , deriva da Object quindi è possibili ridefinire in base alle proprie esigenze il metodo Tostring().

Un'altro metodo utile è getClickCount() che permette di contare il numero di click effettuati sul componente registrato presso il relativo gestore.La firma del metodo è mostrata di seguito

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

è presente anche un metodo per controllare se effettivamente è stata fatta iterazione con un menù o con qualche componente che cambi stato. Il seguente metodo si occupa di questo controllo
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Tra gli altri metodi che voglio nominare ci sono i seguenti:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

come spiegato in precedenza per i metodi getX()-getY()- getPoint() , anche quest'ultimi restituiscono la posizione del puntatore , ma in questo caso relativa allo schermo.

KeyEvent
KeyEvent è un evento generato quando si verifica un input da tastiera. Esistono 3 costanti che rappresentano il tipo evento:
KEY_PRESSED
KEY_RELEASED
KEY_TYPED

sono presenti anche altre costanti , che rappresentano i tasti naturalmente non sto quì a elencarle tutte.
Iniziamo a vedere il costruttore di KeyEvent.
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

orig=rappresenta il componente che ha generato l'evento
tipo=rappresenta il tipo di evento
quando=rappresenta l'ora in cui è avvenuta l'azione
modificatori=rappresenta uno dei modificatori di inputEvent.(Nel caso di keyevent i tasti premuti)
code=il codice del tasto
ch = il carattere digitato

Le funzioni più utilizzato sono mostrate di seguito

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

il primo metodo restituisce un valore intero , che rappresenta il tasto , il secondo metodo restituisce un carattere.
Se non è disponibile un codice o carattere valido restituisce VK_UNDEFINED, questo avviene solo nel caso in cui il tipo sia keytyped. Ma questa situazione l'analizzeremo quando vedremo i gestori eventi.

MouseWheelEvent

Evento generato quando si utilizza la rotella del mouse.Le due costanti rappresentano il tipo di scorrimento:
WHEEL_BLOCK_SCROOL : Scorrimento di una pagina in alto o in basso
WHEEL_UNIT_SCROOL : Scorrimento di riga in alto o in basso

Iniziamo vedendo il costruttore della classe MouseWheelEvent.
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
Orig rappresenta l'oggetto che ha generato l'evento
tipo indica il tipo di evento generato
quando l'ora in cui è avvenuto l'evento
modificatori indica uno delle costanti definite da inpuevent
x le coordinate x del puntatore del mouse
y le coordinate y del puntatore del mouse
attivapop indica se lo scrool ha cambiato lo stato di un componente
scorrCome indica una delle due costanti , che identifica il tipo di scorrimento
quant rappresenta il numero di scorrimento
contex n° rotazione della rotella

riguardo l'ultimo parametro c'è un metodo che viene usato molto spesso ed è
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
Restituisce il numero di rotazione della rotella , può essere sia negativo che positivo
è negativo quando la rotella si è mossa n volte in senso antiorario
è positivo quando la rotella si è mossa n volte in senso orario

TextEvent

Evento generato quando un utente immette caratteri all'interno di un campo di testo.Text Event definisce un unica costante TEXT_VALUE_CHANGED.
Ha un solo costruttore ed è il seguente:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
obj rappresenta l'oggetto che ha generato l'evento
tipo rappresenta il tipo di evento ,appunto l'unica costante.

Questo evento verrà trattato in maniera approfondita quando analizzeremo i componenti come TextArea e TextField

WindowEvent

Evento generato da una finestra (o Frame) . Sono eventi non presenti in un applet , bensì in software per pc.
Iniziamo ad elencare le costanti ,che rappresentano , come in tutti gli altri eventi, anche il tipo di evento che descrive la classe stessa.

WINDOW_ACTIVED La finestra è attiva
WINDOW_CLOSED La finestra è chiusa
WINDOW_CLOSING L'utente ha richiesto la chiusura , successivamente genererà l'evento closed
WINDOW_DEACTIVED Finestra disattiva
WINDOW_DEICONIFIED Finestra ripristinata
WINDOW_GAINED_FOCUS : La finestra ha il focus
WINDOW_LOST_FOUCUS : La finestra ha perso il focus
WINDOW_ICONIFIED : La finestra è stata ridotta a icona
WINDOW_OPENED : La finestra è stata aperta
WINDOW_STATE_CHANGED : Lo stato della finestra è cambiato

La classe WindowEvent definisce numerosi costruttori ne elenco due.
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

obj rappresenta la finestra che ha generato l'evento
tipo una delle costanti sopracitate
altro rappresenta l'altro componente che ha ottenuto il focus , solo nel caso tipo sia uguale WINDOW_GAINED_FOCUS.

Utilizzeremo principalmente WindowEvent , con il suo relativo rilevatore quando utilizzeremo i Frame.

Per questa guida è tutto ci sentiamo alla prossima dove parleremo delle interfaccie di rilevatori eventi
 
Parte 1: Applet
Parte 2:Eventi Parte I

L'ultima volta ci eravamo fermati ad analizzare la classe astratta inputevent che è la superclasse di eventi molto ricorrenti. Appunto MouseEvent-KeyEvent

MouseEvent

MouseEvent presenta molte costanti che rappresentano il tipo d'evento generato.
MOUSE_CLICKED : Click del mouse
MOUSE_MOVED : Movimento del mouse
MOUSE_PRESSED : Il tasto del mouse è stato premuto
MOUSE_RELEASED : il tasto del mouse è stato rilasciato
MOUSE_DRAGGRED : il mouse è stato trascinato
MOUSE_ENTERED : il mouse è entrato in un componente
MOUSE_EXITED : il mouse è uscito dal componente
MOUSE_WHEEL : è stata usata la "rotellina" del mouse

Il costruttore di MouseEvent è mostrato di seguito
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

orig rappresenta il componente che ha generato l'evento.
tipo : una delle costanti sopracitate
when : rappresenta il momento , l'ora in cui è avvenuto l'evento
modificatori : rappresenta uno dei modificatori di inputEvent.
x: coordinate x del puntatore
y: coordinate y del puntatore
click : numero di click effettuati
activePopup : indica se la pressione del mouse ha generato l'apertura di un menu o il cambiamento di stato di un'altro oggetto.


Spesso quando si gestisce l'evento del click del mouse oppure quando entra in un componente è utile sapere anche la posizione relativa alla finestra che può essere un applet o un Frame . Per ottenere le coordinate usare i seguenti metodi :
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

i primi due metodi sono di facile comprensione , restituiscono le coordinate x e y del puntatore, l'ultimo metodo invece restituisce un riferimento di tipo Point , il quale contiene a sua volta due membri interni : x e y, dal quale si può ottenere ugualmente la posizione del mouse. La classe point , come tutte le classi , deriva da Object quindi è possibili ridefinire in base alle proprie esigenze il metodo Tostring().

Un'altro metodo utile è getClickCount() che permette di contare il numero di click effettuati sul componente registrato presso il relativo gestore.La firma del metodo è mostrata di seguito

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

è presente anche un metodo per controllare se effettivamente è stata fatta iterazione con un menù o con qualche componente che cambi stato. Il seguente metodo si occupa di questo controllo
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Tra gli altri metodi che voglio nominare ci sono i seguenti:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

come spiegato in precedenza per i metodi getX()-getY()- getPoint() , anche quest'ultimi restituiscono la posizione del puntatore , ma in questo caso relativa allo schermo.

KeyEvent
KeyEvent è un evento generato quando si verifica un input da tastiera. Esistono 3 costanti che rappresentano il tipo evento:
KEY_PRESSED
KEY_RELEASED
KEY_TYPED

sono presenti anche altre costanti , che rappresentano i tasti naturalmente non sto quì a elencarle tutte.
Iniziamo a vedere il costruttore di KeyEvent.
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

orig=rappresenta il componente che ha generato l'evento
tipo=rappresenta il tipo di evento
quando=rappresenta l'ora in cui è avvenuta l'azione
modificatori=rappresenta uno dei modificatori di inputEvent.(Nel caso di keyevent i tasti premuti)
code=il codice del tasto
ch = il carattere digitato

Le funzioni più utilizzato sono mostrate di seguito

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

il primo metodo restituisce un valore intero , che rappresenta il tasto , il secondo metodo restituisce un carattere.
Se non è disponibile un codice o carattere valido restituisce VK_UNDEFINED, questo avviene solo nel caso in cui il tipo sia keytyped. Ma questa situazione l'analizzeremo quando vedremo i gestori eventi.

MouseWheelEvent

Evento generato quando si utilizza la rotella del mouse.Le due costanti rappresentano il tipo di scorrimento:
WHEEL_BLOCK_SCROOL : Scorrimento di una pagina in alto o in basso
WHEEL_UNIT_SCROOL : Scorrimento di riga in alto o in basso

Iniziamo vedendo il costruttore della classe MouseWheelEvent.
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
Orig rappresenta l'oggetto che ha generato l'evento
tipo indica il tipo di evento generato
quando l'ora in cui è avvenuto l'evento
modificatori indica uno delle costanti definite da inpuevent
x le coordinate x del puntatore del mouse
y le coordinate y del puntatore del mouse
attivapop indica se lo scrool ha cambiato lo stato di un componente
scorrCome indica una delle due costanti , che identifica il tipo di scorrimento
quant rappresenta il numero di scorrimento
contex n° rotazione della rotella

riguardo l'ultimo parametro c'è un metodo che viene usato molto spesso ed è
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
Restituisce il numero di rotazione della rotella , può essere sia negativo che positivo
è negativo quando la rotella si è mossa n volte in senso antiorario
è positivo quando la rotella si è mossa n volte in senso orario

TextEvent

Evento generato quando un utente immette caratteri all'interno di un campo di testo.Text Event definisce un unica costante TEXT_VALUE_CHANGED.
Ha un solo costruttore ed è il seguente:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
obj rappresenta l'oggetto che ha generato l'evento
tipo rappresenta il tipo di evento ,appunto l'unica costante.

Questo evento verrà trattato in maniera approfondita quando analizzeremo i componenti come TextArea e TextField

WindowEvent

Evento generato da una finestra (o Frame) . Sono eventi non presenti in un applet , bensì in software per pc.
Iniziamo ad elencare le costanti ,che rappresentano , come in tutti gli altri eventi, anche il tipo di evento che descrive la classe stessa.

WINDOW_ACTIVED La finestra è attiva
WINDOW_CLOSED La finestra è chiusa
WINDOW_CLOSING L'utente ha richiesto la chiusura , successivamente genererà l'evento closed
WINDOW_DEACTIVED Finestra disattiva
WINDOW_DEICONIFIED Finestra ripristinata
WINDOW_GAINED_FOCUS : La finestra ha il focus
WINDOW_LOST_FOUCUS : La finestra ha perso il focus
WINDOW_ICONIFIED : La finestra è stata ridotta a icona
WINDOW_OPENED : La finestra è stata aperta
WINDOW_STATE_CHANGED : Lo stato della finestra è cambiato

La classe WindowEvent definisce numerosi costruttori ne elenco due.
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

obj rappresenta la finestra che ha generato l'evento
tipo una delle costanti sopracitate
altro rappresenta l'altro componente che ha ottenuto il focus , solo nel caso tipo sia uguale WINDOW_GAINED_FOCUS.

Utilizzeremo principalmente WindowEvent , con il suo relativo rilevatore quando utilizzeremo i Frame.

Per questa guida è tutto ci sentiamo alla prossima dove parleremo delle interfaccie di rilevatori eventi

ottima guida ;) 10/10 :emoji_slight_smile: appena avrò un po di tempo continuerò le miniguide del python patpat