/* MyExample.java */ import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MyExample extends JPanel { private static String feel = UIManager.getCrossPlatformLookAndFeelClassName(); public MyExample() { JButton button = new JButton( "Hello, world" ); ActionListener myListener = new ActionListener() { public void actionPerformed( ActionEvent e ) { String lnfName = null; if( e.getActionCommand().equals( "My" ) ) lnfName = "MyLookAndFeel"; //lnfName = "my.MyLookAndFeel"; else lnfName = feel; try { UIManager.setLookAndFeel( lnfName ); Container c = MyExample.this.getTopLevelAncestor(); SwingUtilities.updateComponentTreeUI( c ); c.validate(); } catch( Exception ex ) { System.err.println( "Could not swap LookAndFeel: " + lnfName ); } } }; ButtonGroup group = new ButtonGroup(); JRadioButton basicButton = new JRadioButton( "Default" ); basicButton.setSelected( true ); basicButton.addActionListener( myListener ); group.add( basicButton ); JRadioButton myButton = new JRadioButton( "My" ); myButton.addActionListener( myListener ); group.add( myButton ); add( button ); add( basicButton ); add( myButton ); } public static void main( String [] args ) { JFrame f = new JFrame( "Look and Feel Example" ); //JPanel j = new MyExample(); MyExample j = new MyExample(); System.err.println( "Current LookAndFeel: " + feel ); f.addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent e ) { System.exit(0); } } ); f.getContentPane().add( j, BorderLayout.CENTER ); f.setSize( 300, 120 ); f.show(); } }