Swing is a GUI toolkit for Java. It is one kind of the Java Foundation Classes (JFC). Swing haves graphical user interface (GUI) widgets such as text boxes, buttons, split-panes, and tables.
Swing widgets give more sophisticated GUI components than the previous Abstract Window Toolkit. Since they are written in pure Java, they run the similar on all platforms, unlike the AWT which is tied to the underlying platform's windowing system. Swing supports pluggable look and feel - not by using the native platform's facilities, but by roughly emulating them. This means you can get any supported look and feel on any platform. The drawbacks of lightweight components is slower execution. The benfit is uniform behavior on all platforms.