Alterar LAF através de botão

E ai povo beleza?
E o seguinte, preciso alterar o LAF da minha aplicação através de botões. Ja procurei e achei um monte de coisa aqui no guj, mas nenhuma que resolvesse meu problema

Eu estou fazendo o seguinte modo:

public class SistemaDeVeiculos extends javax.swing.JFrame {
	
	public void alteraLookAndFeel(String visual){
		{
			
			try {
				javax.swing.UIManager.setLookAndFeel(visual);
			} catch(Exception e) {
				e.printStackTrace();
			}
		}
	}
	
	/** Creates new form SistemaDeVeiculos */
	public SistemaDeVeiculos() {
		initComponents();		
	}

e no botão faço o seguinte:

		menu_motif.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				alteraLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
			}
		});

Só que não altera de maneira nenhuma :frowning:
Alguém sabe me dizer aonde estou errando?

Obrigado a todos

Faltou chamar

SwingUtilities.updateComponentTreeUI(this); pack();

Após alterar seu look&feel.

Isso está na própria documentação da linguagem:
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html#dynamic

Cara costumo fazer com uma classe que criei assim

import java.awt.Component;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UIManager.LookAndFeelInfo;

/**
 * @author Ivan
 * Criado em 15/12/2010
 */
public class MudarVisual {

    //variaveis staticas finais
    public static final int VISUALJAVA = 1;
    public static final int VISUALSO = 2;
    public static final int VISUALNIMBUS = 3;
    public static final int VISUALLIQUID = 4;
    //visual JTattoo
    public static final int VISUALJTATTOOAERO = 5;
    public static final int VISUALJTATTOONOIRE = 6;
    /////////////////////////////////////////////////////////////////////
    //Estilo de visualização
    public static boolean lookAndFeel(Component comp, int visual) {
        boolean mudou = true; //se mudar o visual manda true senão false
        try {

            switch (visual) {
                case VISUALJAVA:UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
                    break;
                case VISUALSO: UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                    break;
                case VISUALNIMBUS:
                    mudou = false;
                    for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
                        if ("Nimbus".equals(info.getName())) {
                            UIManager.setLookAndFeel(info.getClassName());
                            mudou = true;
                            break;
                        }
                    }
                    break;
                case VISUALLIQUID: UIManager.setLookAndFeel("com.birosoft.liquid.LiquidLookAndFeel");
                    break;
                case VISUALJTATTOOAERO: UIManager.setLookAndFeel("com.jtattoo.plaf.aero.AeroLookAndFeel");
                    break;
                case VISUALJTATTOONOIRE: UIManager.setLookAndFeel("com.jtattoo.plaf.noire.NoireLookAndFeel");
                    break;
            }
            //adiciona look and feel ao componente
            SwingUtilities.updateComponentTreeUI(comp);
        } catch (Exception ex) {
            mudou = false;
        }

        return mudou;
    }
}

Para chamar é bem simples use o código

//onde está seuComponente você passa o componente a ser alterado o visual geralmente o JFrame
MudarVisual.lookAndFeel(seuComponente, MudarVisual.VISUALNIMBUS);

Obs.: tem alguns visuais com VISUALLIQUID, VISUALJTATTOOAERO que só será visto se você adicionar suas respectivas bibliotecas

Qualquer coisa só perguntar, flw!!!

Perfeito Vini
Muito obrigado pela sua ajuda cara

Abraço