Pluggable look and feel is a mechanism used in the
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
Swing widget toolkit
A widget toolkit, widget library, GUI toolkit, or UX library is a library (computing), library or a collection of libraries containing a set of graphical control elements (called ''widgets'') used to construct the graphical user interface (GUI) of ...
allowing to change the
look and feel
In software design, the look and feel of a graphical user interface comprises aspects of its design, including elements such as colors, shapes, layout, and typefaces (the "look"), as well as the behavior of dynamic elements such as buttons, boxes ...
of the
graphical user interface
A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
at runtime.
Swing allows an application to specialize the look and feel of widgets by modifying the default (via runtime parameters), deriving from an existing one, by creating one from scratch, or, beginning with J2SE 5.0, by using the
skinnable synth
A synthesizer (also synthesiser or synth) is an electronic musical instrument that generates audio signals. Synthesizers typically create sounds by generating waveforms through methods including subtractive synthesis, additive synthesis a ...
look and feel, which is configured with an
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
property file. The look and feel can be changed at runtime.
Architecture
The corresponding
API
An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
includes:
*
Hooks in
Swing widgets to interact with their look and feel. Each widget defined in Swing can delegate its "painting" to its associated
user interface
In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine fro ...
classes called ''UI delegates''.
* An API to manage existing look-and-feel definitions. This API allow to set the look and feel or switch from look and feels at runtime.
* Another API to define a specific look and feel, or derive a look and feel from an existing one.
Examples of look and feels
Platform look and feels

The
Java platform
Java is a set of computer software and specifications that provides a software platform for developing application software and deploying it in a cross-platform computing environment. Java is used in a wide variety of computing platforms fr ...
comes with several bundled look and feels:
* A default
cross-platform
Within computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several Computing platform, computing platforms. Some ...
look and feel, called ''Metal'' (see ). This look and feel comes with several
themes:
** The , which was historically the first Swing default theme.
** The smoother , which became the default theme for
Java 5.0.
* Other cross-platform look and feels:
** A
skinnable look and feel called
synth
A synthesizer (also synthesiser or synth) is an electronic musical instrument that generates audio signals. Synthesizers typically create sounds by generating waveforms through methods including subtractive synthesis, additive synthesis a ...
(see ), which is configured with an
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
property file.
** The look and feel (based on ''synth''), which is added for the
Java SE 6 Update 10.
* Platform-dependent look and feels: Look and feels that aim to be the closest as possible to the platform native GUI. The fidelity to the native look-and-feel theming has been improved in recent Java versions by leveraging the platform native GUI
theming library when possible
** A
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
look and feel (this look and feel depends on the version of the Windows Operating System),
** A
Motif or
GTK+
GTK (formerly GIMP ToolKit and GTK+) is a free software cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and proprietary s ...
(for newer distributions) look and feel on
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
or
Solaris,
** A specific vendor look and feel for
IBM AIX
AIX (pronounced ) is a series of Proprietary software, proprietary Unix operating systems developed and sold by IBM since 1986. The name stands for "Advanced Interactive eXecutive". Current versions are designed to work with Power ISA based ...
,
HP-UX
HP-UX (from "Hewlett Packard Unix") is a proprietary software, proprietary implementation of the Unix operating system developed by Hewlett Packard Enterprise; current versions support HPE Integrity Servers, based on Intel's Itanium architect ...
, and
Mac OS X
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
.
Third-party look and feels
Numerous other look and feels have been developed by third parties, such as:
FlatLaf open-source, "looks almost flat", themed, scales on HiDPI displays, for JDK8+
Insubstantial a maintenance fork of Substance
JGoodies Windows and plastic look and feels
Liquid which aim to look like the ''Liquid'' theme for
KDE
KDE is an international free software community that develops free and open-source software. As a central development hub, it provides tools and resources that enable collaborative work on its projects. Its products include the KDE Plasma gra ...
Napkin which can be used to make GUI work look provisional
Substance a
skinnable look and feel
Synthetica based on
synth
A synthesizer (also synthesiser or synth) is an electronic musical instrument that generates audio signals. Synthesizers typically create sounds by generating waveforms through methods including subtractive synthesis, additive synthesis a ...
See also
*
Look and feel
In software design, the look and feel of a graphical user interface comprises aspects of its design, including elements such as colors, shapes, layout, and typefaces (the "look"), as well as the behavior of dynamic elements such as buttons, boxes ...
*
Swing
References
External links
List of Java look and feels*
ttp://java.sun.com/products/jfc/tsc/articles/architecture/index.html#pluggable Swing pluggable look and feel architecture
{{DEFAULTSORT:Pluggable Look And Feel
Widget toolkits
JDK components