# Java: GUI - Swing vs. AWT

The original graphical user interface (GUI) for Java was called the Abstract Windowing Toolkit (AWT). Performance and extendability problems with AWT were resolved by introducing a new GUI interface, known as Swing. Swing provides replacements for most of the AWT components, altho many AWT non-component classes remain in use. Upward compatibility is assured in almost all cases; an AWT continues to work in Java.

## Must choose between Swing and AWT

Mixing both Swing and AWT components in the same interface can produce errors, so one has to make a decision about which to use. Despite the advantages of Swing, there actually are arguments for using AWT.

## Swing advantages

- Swing is faster.
- Swing is more complete.
- Swing is being actively improved.

## AWT advantages

- AWT is supported on older, as well as newer, browsers so Applets written in AWT will run on more browsers.
- The Java Micro-Edition, which is used for phones, TV settop boxes, PDAs, etc, uses AWT, not Swing.

## These notes use Swing

These notes use Swing for all GUI components. Because the AWT is very similar to Swing, changing code is not difficult.