GUI programming has been in Java since JDK 1.0, via the API called the Abstract Window Toolkit (AWT). This was a remarkable thing during those times, but it had its own limitations, a few of which are as follows:
- It had a limited set of components.
- You couldn't create custom reusable components because AWT was using native components.
- The look and feel of the components couldn't be controlled, and they took the look and feel of the host OS.
Then, in Java 1.2, a new API for GUI development called Swing was introduced, which worked on the deficiencies of AWT by providing the following:
- A richer components library.
- Support for creating custom components.
- A native look and feel, and support for plugging in a different look and feel. Some well-known Java looks and feel themes are Nimbus, Metal, Motif, and the system default.
A lot of desktop applications...