Java's graphical user interface (GUI) package that provides a large collection of widgets (buttons, labels, lists etc.) that behave similarly on different platforms. Swing features "pluggable look & feel", allowing the program to look like a Windows, Motif or (Macintosh) application. It is implemented using the Model-View-Controller (MVC) architecture and makes extensive use of nested "containers" to control the handling of events such as keystrokes.