How do I set the look and feel for Swing application?

package org.kodejava.example.swing;

import javax.swing.*;
import java.awt.*;

public class LookAndFeelDemo extends JFrame {
    public LookAndFeelDemo() {

    public void initComponents() {
        setSize(250, 250);
        setTitle("LAF Demo");
        getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT));

        JMenu menu = new JMenu("Look and Feel");

        // Get all the available look and feel that we are going to use for
        // creating the JMenuItem and assign the action listener to handle
        // the selection of menu item to change the look and feel.
        UIManager.LookAndFeelInfo[] lookAndFeels = UIManager.getInstalledLookAndFeels();
        for (UIManager.LookAndFeelInfo lookAndFeelInfo : lookAndFeels) {
            JMenuItem item = new JMenuItem(lookAndFeelInfo.getName());
            item.addActionListener(event -> {
                try {
                    // Set the look and feel for the frame and update the UI
                    // to use a new selected look and feel.
                } catch (Exception e) {

        JMenuBar menuBar = new JMenuBar();

        getContentPane().add(new JButton("Hello"));

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> new LookAndFeelDemo().setVisible(true));

Look And Feel Demo

Wayan Saryada

Programmer, runner, recreational diver, currently living in the island of Bali, Indonesia. Mostly programming in Java, creating web based application with Spring Framework, Hibernate / JPA.

Leave a Reply