I asked for button objects that do what I want. Somebody else did all the real work. The buttons are components that can be added with minimum effort.
This is similar to going to a hardware store to get components for your home improvement project. Most of the parts you need already exist. You just assemble them.
In Java programming, you can get the GUI components you want merely by asking for them. Most of the work has already been done and is contained in the Swing package. Swing contains windows, frames, buttons, menus and other components.
A user interacts with a GUI application by causing events. The application must respond to events in the order they arrive. The picture shows this. Each time the user interacts with a component, an event is sent to the application. Different events are sent to different parts of the application. The application has to work correctly no matter what the user does. (Usually an application ignores events that are not relevant to its purpose.)