Heavyweight Component (AWT) - Uses native peers to supply graphical representation (Heavy). For example on Windows button looks like Windows button but on Unix the button looks like a Motif button.
Lightweight Component (Swing) - Doesn't use native peers to supply graphical representation (Light). Component itself handles all graphics; therefore a button will have the same look and feel running on any system (Mac, Unix, or Windows).
Heavy and light doesn't refer to the amount of work a component does just how it gets it done (Heavy - includes peer, Light - no peer needed).
Swing provides following advantages over AWT:
1. More dynamic components
2. More complex components (i.e., JTable)
3. New layout manager (Box)
4. Pluggable look and feel
NOTE: Since swing sits below AWT container you can mix AWT and Swing in any
java program!