Java Swing Tutorial - Java Swing Look and Feel

Swing supports pluggable look and feel (L&F).

We can change the L&F for a Swing application using the setLookAndFeel(String lafClassName) static method of the UIManager class.

The lafClassName argument is the fully qualified name of the class providing the L&F.

The following code sets the L&F for Windows:

String windowsLAF=  "";
try  {
catch (Exception e)  {

If we change the L&F after the GUI has been shown, we will need to update the GUI using the updateComponentTreeUI(container) method of the SwingUtilities class.


The following two methods of the UIManager class return the class names for the default Java L&F and the system L&F:

String getCrossPlatformLookAndFeelClassName()
String getSystemLookAndFeelClassName()

To Set the system (or native) L&F


The following code lists all available L&F on your machine.

import javax.swing.UIManager;
import javax.swing.UIManager.LookAndFeelInfo;
//w w w .ja  v  a2s  .c o m
public class Main {
  public static void main(String[] args) {

    LookAndFeelInfo[] lafList = UIManager.getInstalledLookAndFeels();

    for (LookAndFeelInfo lafInfo : lafList) {
      String name = lafInfo.getName();
      String className = lafInfo.getClassName();
      System.out.println("Name: " + name + ", Class Name: " + className);

The code above generates the following result.