What are the advantages/disadvantages of Swing over AWT?
AWT on the other hand was developed with the mind set that if a component or capability of a component wasn't available on one platform, it won't be available on any platform. Something quickly portable from platform x, to y, to z. Due to the peer-based nature of AWT, what might work on one implementation might not work on another, as the peer-integration might not be as robust. Many of the original AWT problems were traceable to differences in peer implementations.
This is not to say that there are less bugs in Swing, though most are out these days. Its just that if a bug exists in Swing, its the same problem on all platforms, which was not the case with AWT.
Swing also has a few disadvantages:
- It requires Java 2 or a separate JAR file
- If you're not very careful when programming, it can be slower than AWT (all components are drawn)
- Swing components that look like native components might not act exactly like native components