Gestione degli eventi in Java: cos'è e come funziona?

Pubblicato: 2020-03-21

Qualsiasi programma basato su interfaccia utente grafica o GUI, inclusa l'applicazione Java per Windows, è guidato da eventi. Affinché un programma come un'applicazione Java sia utile, è necessario fornire una risposta ai comandi o agli input dell'utente. Le applicazioni Java hanno eventi per acquisire le azioni dell'utente. Prima di discutere la gestione degli eventi in Java, iniziamo discutendo gli eventi.

Sommario

Che cos'è un evento?

Gli eventi hanno lo stesso significato e importanza in ogni linguaggio di programmazione. Sono effetti esterni controllati dall'utente e che fanno sì che l'applicazione si comporti in linea con la condizione predefinita messa in atto per registrare la sua risposta alle diverse azioni dell'utente. Un evento potrebbe anche essere definito come un oggetto che prende vita quando avviene un cambiamento all'interno della GUI.

Esempi di eventi in Java includono la digitazione di caratteri o testo, il clic su una casella combinata, il clic su un pulsante o qualsiasi altra azione dal lato dell'utente. Qualsiasi azione di questo tipo attiva un evento, che si traduce quindi nella creazione dell'oggetto evento rilevante per quell'evento.

Ad esempio, se un utente inserisce alcuni dati (azione dell'utente che attiva un evento), l'applicazione produce un output aprendo una finestra di dialogo o visualizzando informazioni (oggetto evento). Questi comportamenti relativi agli eventi fanno parte del meccanismo di gestione degli eventi di Java e sono presenti nella libreria della GUI Swing. È importante notare che l'origine di ogni evento e il listener di eventi devono essere collegati. In caso contrario, l'attivazione di un evento non produrrà alcuna azione.

Perché un programma o un'applicazione deve essere guidato da eventi?

Prima che la gestione degli eventi entrasse in gioco, un programma doveva raccogliere tutte le informazioni sull'utente stesso per sapere cosa stava facendo in un dato momento. Ciò significa che dopo essere stato eseguito o inizializzato, un programma era sempre in un grande ciclo di ripetizione in attesa che l'utente facesse qualcosa.

Quindi, il programma era alla ricerca di qualsiasi azione, dalla pressione di un pulsante al movimento del cursore. Dopo aver appreso che è successo qualcosa da parte dell'utente, si è preparato a fornire la risposta appropriata. Questo è indicato come polling. Sebbene il polling porti a termine il lavoro, il più delle volte si presenta come un'attività troppo ingestibile e dispendiosa in termini di tempo.

Leggi: Intervista agli sviluppatori Java Domande e risposte

Se consideriamo di utilizzarlo per le applicazioni moderne, non soddisfa davvero i requisiti. Due ragioni principali rendono il polling inadatto per le applicazioni moderne: il polling inserisce tutto il codice relativo agli eventi all'interno del ciclo di ripetizione grande e le interazioni che avvengono all'interno di questa posizione sono troppo complesse. Inoltre, il polling fa entrare un programma in un ciclo infinito, che si traduce nell'esaurimento dei cicli della CPU senza alcuna garanzia di azione da parte dell'utente.

Abstract Window Toolkit o AWT è andato avanti e ha trovato associazione con un modello di lavoro diverso per risolvere il problema discusso sopra. Questo nuovo modello è la programmazione basata sugli eventi. Con AWT, non è necessario che il programma tenga conto degli eventi generati dagli utenti. È il runtime Java che fa questo lavoro. Intima il programma non appena si svolge un evento. Salva una risorsa preziosa dall'esaurimento e gestisce meglio l'interazione dell'utente.

Cosa sono i gestori di eventi in Java e come funzionano?

Parliamo ora dell'argomento principale che ci siamo proposti di affrontare. Come funziona la gestione degli eventi in Java?

Come accennato in precedenza, gli eventi sono azioni dell'utente o effetti esterni che fanno sì che un'applicazione si comporti in un determinato modo. In Java, i componenti AWT, inclusi la casella di testo, il pulsante e altri, sono responsabili della generazione degli eventi. Non appena viene generato un evento, il listener lo gestisce ed esegue l'azione appropriata.

La gestione degli eventi in Java comprende quattro elementi. Questi potrebbero anche essere definiti come gestori di eventi.

1. Origine evento : un'origine evento che genera un evento è principalmente un componente AWT. È possibile eseguire il comando java.awt.component per conoscere i componenti che possono avere o meno alcun ruolo nella generazione di eventi. I componenti sono la sottoclasse della classe sorgente originale. Le origini degli eventi possono essere qualsiasi cosa, da caselle di testo e caselle combinate a pulsanti e altro ancora.

Leggi: Architettura MVC in Java

2. Classi di eventi : in Java, queste sono classi che rappresentano quasi tutti i componenti che hanno a che fare con la generazione di eventi. Questi sono anche chiamati tipi di eventi. Ecco alcune delle classi di eventi più comuni:

  • ActionEvent : questa classe o tipo di evento rappresenta un evento che prevede il clic su un elemento grafico, come un pulsante o un elemento di elenco. Il listener correlato a questa classe è ActionListener.
  • KeyEvent : questa classe di eventi rappresenta un evento che prevede la pressione e il rilascio di un tasto. Il listener associato a questa classe è KeyListener.
  • ContainerEvent : questo tipo di evento rappresenta un evento che si verifica con il contenitore della GUI. Questa classe è associata a qualsiasi evento in cui l'azione dell'utente implica l'aggiunta o la rimozione di oggetti dalla GUI. Il listener correlato per questa classe è ContainerListener.
  • MouseEvent : Questa classe rappresenta tutti quegli eventi che coinvolgono il clic o la pressione del mouse. L'ascoltatore per questa classe è MouseListener.
  • WindowEvent : questa classe o tipo di evento rappresenta eventi che coinvolgono qualsiasi azione correlata a una finestra. La chiusura, l'attivazione o la disattivazione di una finestra rientrano in questa classe. Il listener correlato per questa classe è WindowListener.

3. Listener di eventi : si tratta di interfacce di Java che forniscono vari metodi che possono essere utilizzati in diverse classi implementate. Il lavoro dei listener di eventi prevede l'ascolto degli eventi e la loro elaborazione in modo appropriato quando si verificano. Quasi ogni componente in Java ha un listener dedicato che gestisce qualsiasi evento generato da quel componente. ActionListener gestisce gli eventi che coinvolgono elenchi, pulsanti, campi di testo e menu.

4. Adattatori di eventi : se un programma presenta troppi metodi astratti per essere ignorati dall'ascoltatore, può diventare difficile compilarlo. Ad esempio, se vogliamo chiudere un frame, ci sono sette metodi astratti WindowListener che dobbiamo sovrascrivere. Per ridurre la complessità e la codifica pesante, Java dispone di adattatori di eventi. Gli adattatori di eventi sono già metodi astratti sovrascritti.

Conclusione

È importante ricordare che più origini di eventi e listener possono interagire tra loro. Quindi, più eventi appartenenti alla stessa classe possono essere gestiti da un singolo listener. Ciò significa che un listener può gestire tutti quegli eventi che coinvolgono gli stessi componenti che eseguono azioni simili. Allo stesso modo, un singolo evento potrebbe essere gestito da più di un listener, solo se il design del programma lo consente.

Ha senso?

Sì?

No?

Contattaci per conoscere un'ampia sessione sulla gestione degli eventi in Java. Non te ne pentirai!

Se sei interessato a saperne di più su Java per lo sviluppo web, dai un'occhiata al Diploma PG di upGrad e IIIT-B in Sviluppo software full-stack, progettato per i professionisti che lavorano e offre oltre 500 ore di formazione rigorosa, oltre 9 progetti e incarichi, Status di Alumni IIIT-B, progetti pratici pratici e assistenza sul lavoro con le migliori aziende.

Atterra sul lavoro dei tuoi sogni

UPGRAD E DIPLOMA PG DI IIIT-BANGALORE IN SVILUPPO SOFTWARE
Per saperne di più