En händelse i Java är ett objekt som skapas när något ändras i ett grafiskt användargränssnitt. Om en användare klickar på en knapp, klickar på en kombinationsruta eller skriver in tecken i ett textfält etc., utlöser en händelse, skapar det relevanta händelseobjektet. Detta beteende är en del av Java: s händelseshanteringsmekanism och ingår i Swing GUI-biblioteket.
Låt oss till exempel säga att vi har en JButton. Om en användare klickar på JButton, en knappklickhändelse utlöses, händelsen skapas och den skickas till den relevanta händelse lyssnaren (i detta fall, Action). Den relevanta lyssnaren har implementerat kod som bestämmer vilken åtgärd som ska vidtas när händelsen inträffar.
Observera att en händelseskälla måste kopplas ihop med en händelse lyssnare, eller dess utlösning kommer att resultera i någon åtgärd.
Eventhantering i Java består av två viktiga element:
Det finns flera typer av händelser och lyssnare i Java: varje typ av händelse är knuten till en motsvarande lyssnare. För denna diskussion, låt oss överväga en vanlig typ av händelse, en actionhändelse representerad av Java-klassen Action, vilket utlöses när en användare klickar på en knapp eller objektet i en lista.
Vid användarens handling, en Action objekt som motsvarar den aktuella åtgärden skapas. Detta objekt innehåller både information om händelsekällan och den specifika åtgärd som användaren vidtar. Detta händelseobjekt skickas sedan till motsvarande Action objektets metod:
void actionPerformed (ActionEvent e)
Denna metod körs och returnerar lämpligt GUI-svar, som kan vara att öppna eller stänga en dialog, ladda ner en fil, tillhandahålla en digital signatur eller någon annan av de otaliga åtgärder som finns tillgängliga för användare i ett gränssnitt.
Här är några av de vanligaste typerna av händelser i Java:
Observera att flera lyssnare och händelsekällor kan interagera med varandra. Exempelvis kan flera händelser registreras av en enda lyssnare om de är av samma typ. Detta innebär att för en liknande uppsättning komponenter som utför samma typ av åtgärd kan en händelse lyssnaren hantera alla händelser. På samma sätt kan en enda händelse vara bunden till flera lyssnare om det passar programmets design (även om det är mindre vanligt).