Source Code : How to change the look and feel of Swing applications

Java Is Open Source Programming Language You Can Download From Java and Java Libraries From http://www.oracle.com. Click Here to download
We provide this code related to title for you to solve your developing problem easily. Libraries which is import in this program you can download from http://www.oracle.com. Click Here or search from google with Libraries Name you get jar file related it

How to change the look and feel of Swing applications

  



import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

public class Main extends JFrame {

  private String strings[] = { "Metal", "Motif", "Windows" };

  private UIManager.LookAndFeelInfo looks[] = UIManager.getInstalledLookAndFeels();

  private JRadioButton radio[] = new JRadioButton[strings.length];
  private JButton button = new JButton("JButton");

  private JLabel label= new JLabel("This is a Metal look-and-feel", SwingConstants.CENTER);

  private JComboBox comboBox = new JComboBox(strings);

  public Main() {
    JPanel northPanel = new JPanel();
    northPanel.setLayout(new GridLayout(3, 1, 0, 5));
    northPanel.add(label);    
    northPanel.add(button);    
    northPanel.add(comboBox);
    add(northPanel, BorderLayout.NORTH);
    JPanel southPanel = new JPanel();
    
    ItemHandler handler = new ItemHandler();
    southPanel.setLayout(new GridLayout(1, radio.length));

    ButtonGroup group = new ButtonGroup();
    for (int i = 0; i < radio.length; i++) {
      radio[i] = new JRadioButton(strings[i]);
      radio[i].addItemListener(handler);
      group.add(radio[i]);
      southPanel.add(radio[i]);
    }

    add(southPanel, BorderLayout.SOUTH);
    
    setSize(300, 200);
    setVisible(true);
    radio[0].setSelected(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }

  private void changeTheLookAndFeel(int value) {
    try {
      UIManager.setLookAndFeel(looks[value].getClassName());
      SwingUtilities.updateComponentTreeUI(this);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  public static void main(String args[]) {
    Main dx = new Main();
  }

  private class ItemHandler implements ItemListener {
    public void itemStateChanged(ItemEvent e) {
      for (int i = 0; i < radio.length; i++)
        if (radio[i].isSelected()) {
          label.setText("This is a " + strings[i] + " look-and-feel");
          comboBox.setSelectedIndex(i);
          changeTheLookAndFeel(i);
        }
    }
  }
}

   
    
  

Thank with us