// This creates a tiny JFrame with a menu, which changes the LookAndFeel.
package looksAndFeels;
import javax.swing.*;
import javax.swing.UIManager.*;
import java.awt.event.*;
public class ThemeChanger extends JFrame {
ThemeChanger __instance;
public ThemeChanger() {
super("Swing Theme Changer");
__instance = this;
this.setSize(400, 200);
JMenuBar appMenu = new JMenuBar();
appMenu.add(makeLaFMenu());
this.setJMenuBar(appMenu);
this.setVisible(true);
}
private JMenu makeLaFMenu() {
JMenuItem tempItem;
JMenu lafMenu = new JMenu("Supported Themes");
LookAndFeelInfo[] supportedLAFs = UIManager.getInstalledLookAndFeels();
for (int ii = 0; ii < supportedLAFs.length; ii++) {
LookAndFeelInfo currentLAF = supportedLAFs[ii];
tempItem = new JMenuItem(currentLAF.getName());
tempItem.setActionCommand(currentLAF.getClassName());
tempItem.addActionListener(new myListener());
lafMenu.add(tempItem);
}
return lafMenu;
}
class myListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
try {
UIManager.setLookAndFeel(event.getActionCommand());
} catch (Exception e) {
; // No exceptions will happen (barring some unforeseen catastrophe),
// because we only grabbed the supported LaF's.
}
SwingUtilities.updateComponentTreeUI(__instance);
}
}
public static void main(String[] args) {
new ThemeChanger();
}
}