Pluggable look and feel


Pluggable look and feel is a mechanism used in the Java Swing widget toolkit allowing to change the look and feel of the graphical user interface at runtime.
Swing allows an application to specialize the look and feel of widgets by modifying the default, deriving from an existing one, by creating one from scratch, or, beginning with J2SE 5.0, by using the skinnable synth look and feel, which is configured with an XML property file. The look and feel can be changed at runtime.

Architecture

The corresponding API 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 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 comes with several bundled look and feels:

Third-party look and feels

Numerous other look and feels have been developed by third parties, such as:
  • , open-source, "looks almost flat", themed, scales on HiDPI displays, for JDK8+
  • , a maintenance fork of Substance
  • , Windows and plastic look and feels
  • , which aim to look like the Liquid theme for KDE
  • , which can be used to make GUI work look provisional
  • , a skinnable look and feel
  • , based on synth