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 
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