Changing the Look and Feel : Look and Feel « Swing « Java Tutorial






Changing the Look and Feel
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

public class ChangeLook {

  public static void main(String args[]) {
    final JFrame frame = new JFrame("Change Look");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    ActionListener actionListener = new ActionListener() {
      public void actionPerformed(ActionEvent actionEvent) {
        String lafClassName = null;
        lafClassName = actionEvent.getActionCommand();
        String finalLafClassName = lafClassName;
        try {
          UIManager.setLookAndFeel(finalLafClassName);
          SwingUtilities.updateComponentTreeUI(frame);
        } catch (Exception exception) {
          JOptionPane.showMessageDialog(frame, "Can't change look and feel", "Invalid PLAF",
              JOptionPane.ERROR_MESSAGE);
        }

      }
    };

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

    JComboBox comboBox = new JComboBox(new String[] { "a", "b" });

    JPanel panel = new JPanel();

    for (int i = 0, n = looks.length; i < n; i++) {
      JButton button = new JButton(looks[i].getName());
      button.setActionCommand(looks[i].getClassName());
      button.addActionListener(actionListener);
      panel.add(button);
    }

    frame.add(comboBox, BorderLayout.NORTH);
    frame.add(panel, BorderLayout.SOUTH);
    frame.setSize(350, 150);
    frame.setVisible(true);

  }
}








14.119.Look and Feel
14.119.1.LookAndFeel Introduction
14.119.2.Listing the names of the look-and-feel classes that are installed with the JDK
14.119.3.Changing the Look and Feel to MotifLookAndFeelChanging the Look and Feel to MotifLookAndFeel
14.119.4.Install Cross Platform Look And FeelInstall Cross Platform Look And Feel
14.119.5.Changing the Look and FeelChanging the Look and Feel
14.119.6.Get the system look and feel
14.119.7.Start up a program from the command line with a new look and feel.
14.119.8.Late loading of icon image files: public Object makeIcon(Class baseClass, String imageFile).Late loading of icon image files: public Object makeIcon(Class baseClass, String imageFile).
14.119.9.Windows look and feel in Java 6
14.119.10.Default look and feel can be set in a file called 'swing.properties' located in the '/lib' directory.
14.119.11.Demonstrating the new GTK look and feel