by Dinesh Thakur

Swing, a part of Java Federation Classes (JFC) is the next generation GUI toolkit that allows us to develop large scale enterprise applications in Java. It is a set of classes which provides many powerful and flexible components for creating graphical user interface. Earlier, the concept of Swing did not exist in Java and the user interfaces were built by using the Java's original GUI system, AWT. Because of the limitations of the AWT, Swing was introduced in 1997 by the Sun Microsystems. It provides new and improved components that enhance the look and functionality of GUIs.

With Java 1.1, Swing was used as a separate library. However, it was fully integrated into Java with the start of Java 1.2. So, user working with Java 1.2 can easily work with Swing.

Features of Swing

Swing provides many new features; two of its popular features are:

• Lightweight components

• Pluggable look and feel

Lightweight Components

Swing components are lightweight as they are written entirely in Java and do not depend on native peers (platform specific code resources). Rather, they use simple drawing primitives to render themselves on the screen. The look and the feel of the component is not controlled by the underlying operating system but by Swing itself. Thus, they are not restricted to platform-specific appearance like, rectangular or opaque shape.

Note: Most of the components are lightweight but not all.

Pluggable Look and Feel

The pluggable look arid feel feature allows us to tailor the look and feel of the application and applets to the standard looks like, Windows and Motif. We can even switch to different look and feel at runtime. Swing has the capability to support several look and feels, but at present, it provides support for the Windows and Motif. As the look and feel of components is controlled by Swing rather than by operating system, the feel of components can also be changed. The look and feel of a component can be separated form the logic of the component. Thus, it is possible to "plug in" a new look and feel for any given component without affecting the rest of the code.

Note: Default look and feel, provided by JE 1.6 is called metal, which is also called the Java look and feel.