SwingUtilities: updateComponentTreeUI(Component c) : SwingUtilities « javax.swing « Java by API






SwingUtilities: updateComponentTreeUI(Component c)

  
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

public class MainClass {
  protected JFrame theFrame = new JFrame("LNF Switcher");

  protected Container cp;

  protected String curLF = "javax.swing.plaf.metal.MetalLookAndFeel";

  protected JRadioButton previousButton;

  public MainClass() {
    theFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    cp = theFrame.getContentPane();
    cp.setLayout(new FlowLayout());

    ButtonGroup bg = new ButtonGroup();

    JRadioButton bJava = new JRadioButton("Java");
    bJava.addActionListener(new LNFSetter("javax.swing.plaf.metal.MetalLookAndFeel", bJava));
    bg.add(bJava);
    cp.add(bJava);

    JRadioButton bMSW = new JRadioButton("MS-Windows");
    bMSW.addActionListener(new LNFSetter("com.sun.java.swing.plaf.windows.WindowsLookAndFeel", bMSW));
    bg.add(bMSW);
    cp.add(bMSW);

    JRadioButton bMotif = new JRadioButton("Motif");
    bMotif.addActionListener(new LNFSetter("com.sun.java.swing.plaf.motif.MotifLookAndFeel", bMotif));
    bg.add(bMotif);
    cp.add(bMotif);

    JRadioButton bMac = new JRadioButton("Sun-MacOS");
    bMac.addActionListener(new LNFSetter("com.sun.java.swing.plaf.mac.MacLookAndFeel", bMac));
    bg.add(bMac);
    cp.add(bMac);

    String defaultLookAndFeel = UIManager.getSystemLookAndFeelClassName();
    JRadioButton bDefault = new JRadioButton("Default");
    bDefault.addActionListener(new LNFSetter(defaultLookAndFeel, bDefault));
    bg.add(bDefault);
    cp.add(bDefault);

    (previousButton = bDefault).setSelected(true);

    theFrame.pack();
    theFrame.setVisible(true);
  }

  class LNFSetter implements ActionListener {
    String theLNFName;

    JRadioButton thisButton;

    LNFSetter(String lnfName, JRadioButton me) {
      theLNFName = lnfName;
      thisButton = me;
    }
    public void actionPerformed(ActionEvent e) {
      try {
        UIManager.setLookAndFeel(theLNFName);
        SwingUtilities.updateComponentTreeUI(theFrame);
        theFrame.pack();
      } catch (Exception evt) {
        JOptionPane.showMessageDialog(null, "setLookAndFeel didn't work: " + evt, "UI Failure",
            JOptionPane.INFORMATION_MESSAGE);
        previousButton.setSelected(true); // reset the GUI to agree
      }
      previousButton = thisButton;
    }
  }

  public static void main(String[] argv) {
    new MainClass();
  }
}

           
         
    
  








Related examples in the same category

1.SwingUtilities: convertPointFromScreen(Point p, Component c)
2.SwingUtilities: convertPointToScreen(Point p, Component c)
3.SwingUtilities: getRoot(Component c)
4.SwingUtilities: getWindowAncestor(Component c)
5.SwingUtilities.invokeLater(Runnable doRun)
6.SwingUtilities.isEventDispatchThread()
7.SwingUtilities.isLeftMouseButton(MouseEvent mouseEvent)
8.SwingUtilities.isMiddleMouseButton(MouseEvent mouseEvent)
9.SwingUtilities.isRightMouseButton(MouseEvent mouseEvent)
10.SwingUtilities: invokeAndWait(Runnable run)