Construct a program...
super();
theFrame = new JFrame("LNF Switcher");
theFrame.addWindowListener(new WindowCloser(theFrame, true));
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("MacOS");
bMac.addActionListener(new LNFSetter(
"com.sun.java.swing.plaf.mac.MacLookAndFeel", bMac));
bg.add(bMac);
cp.add(bMac);
// Following is a **hypothetical** addition!
JRadioButton bOL = new JRadioButton("OPEN LOOK");
bOL.addActionListener(new LNFSetter(
"com.darwinsys.openlook.OpenLookAndFeel", bOL));
bOL.setEnabled(false); // since it IS hypothetical
bg.add(bOL);
cp.add(bOL);
// We "know" that the Java Look-and-feel is the default.
previousButton = bJava;
bJava.setSelected(true);
theFrame.pack();
theFrame.setVisible(true);