This question has come up a couple of times. AWT was Sun's first cut
at a GUI package for Java. The AWT team then identified several issues
they wanted to address and a splinter group began work on Swing,
which was originally a separately downloadable package. I believe that
in release 1.2 Swing was officially added to the J2SE core. The Swing Connection article, Getting Started With Swing
, explains some of the major improvemnts. Here is
- pluggable look and feel
This is especially exciting with the introduction, in release 1.4.2,
of the GTK look and feel.
- accessibility support
This is especially important now that providing accessible applications
is a Federal law, at least here in the U.S.
- much more sophisticated component design
For example, Swing components double buffer, AWT components don't.
AWT doesn't have complex components like JTable.
Swing components have built-in drag and drop support.
This list could go on and on...
You might also find the article by one of AWT and Swing's principle
designers, Amy Fowler, interesting, Mixing Heavy and Light Components
. (By the way, we don't recommend mixing heavyweight
and lightweight components, but it's an interesting article, none the less.)
One complaint that has been leveled against Swing is that it's slow.
This has been a concern within Sun and a major push, as of release 1.4,
was to improve performance. Release 1.4 did have major performance
improvements and this continues to be an ongoing effort.
I hope that answers some of your questions. Kathy has worked at Sun
for over 10 years and may have more interesting perspectives than I, who
has worked at Sun for only 5 years.