Definire un solo listener che reagisce a tutti gli eventi.
E' il modo usato qui.
In generale e' meglio il primo modo.
Il secondo modo e' indicato quando la componente che deve reagire agli
eventi e' sempre la stessa (qui e' sempre il frame).
Una classe puo' essere sottoclasse (implements...) di una
sola classe, ma puo' implementare (implements...) un
numero arbitrario di interfacce.
Siccome gli event listener sono interfacce, una classe puo' implementarne
piu' di uno (qui ne implementa gia' due).
Non potevo invece usare gli adapter perche' gli adapter sono classi,
e la mia classe EsFrame e' gia' sottoclasse di Frame,
per cui non puo' essere sottoclasse di altro.
Che cosa bisogna fare
Aggiungere la gestione degli eventi di classi
FocusEvent, MouseEvent, KeyEvent,
aggiungendo:
- FocusListener che stampi su standard output
un messaggio dicendo che la finestra ha ottenuto / perso il focus
- KeyListener che stampi su standard output
il carattere introdotto e il tipo di interazione avvenuta
(pressione, rilascio, digitazione)
- MouseListener che stampi su standard output
le coordinate attuali del mouse e il tipo di interazione avvenuta
(pressione, rilascio, click, entrata, uscita)
- eventualmente MouseMotionListener che stampi su standard output
le coordinate attuali del mouse
Per informazioni sui metodi da implementare per i vari listener, vedere le
dispense o la documentazione in linea su Java API.