Go and look for the
ActionEvent class, and find its inheritance hierarchy. Now look up its
superclass and look for its subclasses. You will find there are all sorts of events which can happen. There are events when a GUI becomes visible, comes to the front, is resized, has the mouse travel across it, etc., etc. In fact a GUI fires off hundreds of events per minute or maybe even per second. Each event travels through the different panes of the
top level container, and also through all Components with the same location on screen as the event. The events will disappear off the back (root pane) of the top level container and disappear into cyber‑limbo never to be seen again (except possibly by garbage collection programs). But somewhere on that journey, the event can be listened for. Add an ActionListener to a button, and that listener will intercept all action events passing through that button. When that happens, the
one method in ActionListener will be called. The process is similar for all sorts of event; you will also find that if you go a bit higher in the inheritance tree for events, you find
this and it has all sorts of different subclasses, representing even more kinds of different events for other circumstances.
The different events occur when different things happen. Action Event, which is listened for by Action Listeners, occurs when you click a button with the mouse, or use the enter key inside a text field, or similar actions.