Parts of this article (those related to Links to Java.net, Examples of Looks and Feels,) need to be updated. Please help update this article to reflect recent events or newly available information.(May 2020)
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 skinnablesynth look and feel, which is configured with an XML property file. The look and feel can be changed at runtime.
Hooks in Swingwidgets 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.
Platform-dependent look and feels:[4] 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[5][6]
A Windows look and feel (this look and feel depends on the version of the Windows Operating System),