Swing is a graphical user interface (GUI) widget toolkit for the Java programming language. It is part of the Java Foundation Classes (JFC), which is an API for providing a graphical user interface for Java programs. Swing was developed to provide a more sophisticated set of GUI components than the earlier Abstract Window Toolkit (AWT). It has more powerful and flexible components than AWT. Swing provides a native look and feel that emulates the look and feel of several platforms, and also supports a pluggable look and feel that allows applications to have a look and feel unrelated to the underlying platform. Swing also supports layout managers, unlike AWT which uses native windowing systems' layouts.