Ascoltatori di eventi Java e come funzionano

Un listener di eventi in Java è progettato per elaborare un qualche tipo di evento: "ascolta" un evento, come un clic del mouse dell'utente o la pressione di un tasto, quindi risponde di conseguenza. Un listener di eventi deve essere collegato a un oggetto evento che definisce l'evento.

Ad esempio, componenti grafici come a JButton o JTextField sono conosciuti come fonti di eventi. Ciò significa che possono generare eventi (chiamati oggetti evento), Come fornire a JButton per un utente fare clic o a JTextField in cui un utente può inserire del testo. Il compito dell'ascoltatore di eventi è catturare quegli eventi e fare qualcosa con loro.

Come funzionano gli ascoltatori di eventi

Ogni interfaccia del listener di eventi include almeno un metodo utilizzato dalla sorgente di eventi equivalente.

Per questa discussione, consideriamo un evento del mouse, ovvero ogni volta che un utente fa clic su qualcosa con un mouse, rappresentato dalla classe Java MouseEvent. Per gestire questo tipo di evento, devi prima creare un MouseListener classe che implementa Java MouseListener interfaccia. Questa interfaccia ha cinque metodi; implementare quello relativo al tipo di azione del mouse che prevedi venga eseguita dall'utente. Questi sono:

  • void mouseClicked (MouseEvent e)

    Richiamato quando si è fatto clic (premuto e rilasciato) il pulsante del mouse su un componente.
  • void mouseEntered (MouseEvent e)

    Richiamato quando il mouse entra in un componente.
  • void mouseExited (MouseEvent e)

    Richiamato quando il mouse esce da un componente.
  • void mousePremuto (MouseEvent e)

    Richiamato quando è stato premuto un pulsante del mouse su un componente.
  • void mouseReleased (MouseEvent e)

    Richiamato quando un pulsante del mouse è stato rilasciato su un componente

Come puoi vedere, ogni metodo ha un singolo parametro oggetto evento: il particolare evento del mouse che è progettato per gestire. Nel tuo MouseListener classe, tu Registrati "ascoltare" uno di questi eventi in modo da essere informato quando si verificano.

Quando l'evento si attiva (ad esempio, l'utente fa clic con il mouse, come da mouseClicked () metodo sopra), un rilevante MouseEvent l'oggetto che rappresenta quell'evento viene creato e passato al MouseListener oggetto registrato per riceverlo. 

Tipi di ascoltatori di eventi

I listener di eventi sono rappresentati da diverse interfacce, ognuna delle quali è progettata per elaborare un evento equivalente.

Si noti che i listener di eventi sono flessibili in quanto un singolo listener può essere registrato per "ascoltare" più tipi di eventi. Ciò significa che, per un insieme simile di componenti che eseguono lo stesso tipo di azione, un listener di eventi può gestire tutti gli eventi.

Ecco alcuni dei tipi più comuni:

  • ActionListener: Ascolta un ActionEvent, cioè quando si fa clic su un elemento grafico come un pulsante o un elemento in un elenco.
  • ContainerListener: Ascolta a ContainerEvent, che potrebbe verificarsi se l'utente aggiunge o rimuove un oggetto dall'interfaccia.
  • KeyListener: Ascolta a Evento chiave in cui l'utente preme, digita o rilascia un tasto.
  • WindowListener: Ascolta a WindowEvent, ad esempio, quando una finestra è chiusa, attivata o disattivata.
  • MouseListener: Ascolta a  MouseEvent, come quando si fa clic o si preme un mouse.