Como alterar o Look and Feel no NetBeans

Olá Pessoal,
Sou novo no Java e acabei de me deparar com um problema.
Quando eu crio um botão utilizando as Ferramentas do NetBeans, ele cria normal e se eu visualizar ta tudo certo, mas na hora que eu executo o botão fica diferente. Ele fica maior e quadrado.

Alquem pode me Ajudar?
Obrigado!

Isso acontece pois quando você executa o NetBeans, por padrão, ele roda com o Look and Feel (L&F) (aparência) parecido com o do Sistema Operacional. Sendo assim, a contrução de interfaces gráficas segue o mesmo L&F do NetBeans. Entretanto, quando você executa um programa feito em Swing, os componentes, por padrão, são rederizados usando o L&F padrão do Swing. A partir do Java 5, o L&F padrão é o OceanTheme (baseado no L&F Metal).

Enfim, para resolver isso você pode proceder de duas formas:
1 - Crie um novo ícone do NetBeans na sua área de trabalho, acesse as propriedades do ícone (botão direito -> propriedades) e insira o parâmetro --laf no destino. Ficaria algo assim:

Fazendo isso, quando você abrir o NetBeans novamente, ele terá a aparência padrão de um programa feito em Swing, usando para isso a classe javax.swing.plaf.metal.OceanTheme passada como valor do parâmetro --laf.

2 - A outra possibilidade seria você fazer o inverso, ou seja, forçar o seu programa a rodar no L&F usado pelo NetBeans. Isso dá um pouco mais de trabalho, pois o NetBeans vai executar de forma diferente em cada sistema operacional, sempre seguindo o L&F padrão do kit de janelamento do SO (que precisa ser configurado no código ou por meio de alguma forma de configuração externa), fazendo com que a aparência da sua interface gráfica não seja consistente. Uma forma de se fazer isso, seria você inserir, logo no início do método main, o seguinte trecho de código:

[code]public static void main( String[] args ) {
try {
for ( LookAndFeelInfo info : UIManager.getInstalledLookAndFeels() ) {
if ( “Nome do L&F Utilizado Aqui”.equals( info.getName() ) ) {
UIManager.setLookAndFeel( info.getClassName() );
break;
}
}
} catch ( UnsupportedLookAndFeelException exc ) {
exc.printStackTrace();
} catch ( ClassNotFoundException exc ) {
exc.printStackTrace();
} catch ( InstantiationException exc ) {
exc.printStackTrace();
} catch ( IllegalAccessException exc ) {
exc.printStackTrace();
}

// restante do método main aqui...

}[/code]

Eu recomendo que você use a primeira abordagem, dado que daquela forma, você terá um L&F uniforme em diversos SOs. Eu normalmente mantenho dois ícones do NetBeans. Um sem a opção do L&F, para trabalhar com outros tipos de projetos que não sejam usando Swing, e um ícone com a opção do L&F, para projetos que requerem construção de interfaces gráficas em Swing.

[]´s

Obrigado davidbuzatto.

Vou fazer os testes aqui.

davidbuzatto

cara, fiz os testes aqui.
o 1° exemplo funcionou, a visualização está igual a execução.
mas como eu faço para os botões ficarem aredondados igual estava na visualização antes de eu alterar o destino do atalho.
Obigado.

Troque “Nome do L&F Utilizado Aqui” por “Windows” no código que te passei.
Lembre-se que se você for rodar sua aplicação no Ubuntu por exemplo, o código vai lançar uma exceção e o L&F padrão (Metal) é que será usado.
Se sua aplicação for ser utilizada somente no Windows, você não vai ter problema.

Para listar o nome dos L&Fs disponíveis na sua instalação do JDK, basta usar o seguinte código:

for ( LookAndFeelInfo info : UIManager.getInstalledLookAndFeels() ) { System.out.println( info.getName() ); }
Note que é o mesmo for do código que passei, só que está mostrando o nome dos L&Fs disponíveis. Se quiser fazer alguns testes, vá trocando o “Nome do L&F Utilizado Aqui” pelos valores mostrados na saída que o código acima gerar.

[]´s

Cara Valeu mesmo.

agora funcionou certo.
O Nimbus é filé tbm. :smiley:
Obrigado

Se quiser usar o Nimbus, rode o NetBeans usando o Nimbus tbm:

Como o Nimbus é um L&F independente de paltaforma, vc pode usar ele traquilamente. Ele está presente a partir da versão 1.6u10 do Java.

A partir do Java 7 ele vai se tornar o L&F padrão do Swing, ficando no lugar do OceanTheme (aquele azul) que é feito em cima do Metal.

[]´s

Ops, falei besteira.
O Nimbus não vai ser o L&F padrão. Apesar de fazer parte da API padrão a partir do Java 7, quem quiser usá-lo vai ter que configurar manualmente.

Fonte: http://blogs.oracle.com/henrik/2010/11/nimbus_look-and-feel_in_jdk_7.html

[]´s

Olha que legal. Dá p/ mudar as cores base do Nimbus tbm.
Dessa forma ele fica esverdeado:

[code]UIManager.put( “nimbusBase”, new Color( 59, 140, 47 ) );
UIManager.put( “nimbusBlueGrey”, new Color( 170, 190, 184 ) );
UIManager.put( “control”, new Color( 214, 223, 220 ) );

try {
for ( LookAndFeelInfo info : UIManager.getInstalledLookAndFeels() ) {
if ( “Nimbus”.equals( info.getName() ) ) {
UIManager.setLookAndFeel( info.getClassName() );
break;
}
}
} catch ( UnsupportedLookAndFeelException exc ) {
exc.printStackTrace();
} catch ( ClassNotFoundException exc ) {
exc.printStackTrace();
} catch ( InstantiationException exc ) {
exc.printStackTrace();
} catch ( IllegalAccessException exc ) {
exc.printStackTrace();
}[/code]

Alaranjado:UIManager.put( "nimbusBase", new Color( 140, 103, 59 ) ); UIManager.put( "nimbusBlueGrey", new Color( 190, 189, 170 ) ); UIManager.put( "control", new Color( 221, 223, 212 ) );

Avermelhado:UIManager.put( "nimbusBase", new Color( 140, 42, 42 ) ); UIManager.put( "nimbusBlueGrey", new Color( 190, 167, 167 ) ); UIManager.put( "control", new Color( 223, 215, 214 ) );

Tons de cinza:UIManager.put( "nimbusBase", new Color( 81, 81, 81 ) ); UIManager.put( "nimbusBlueGrey", new Color( 190, 190, 190 ) ); UIManager.put( "control", new Color( 223, 223, 223 ) );

Fonte: http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/color.html
Outras propriedades que podem ser alteradas: http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/_nimbusDefaults.html#primary

exilado, tomei a liberdade de alterar o título do seu tópico para que ele seja achado mais facilmente através das buscas ok?
O título não estava condizente com a sua dúvida, que está relacionada aos Look and Feels e não a botões.

[]´s

davidbuzatto

Muito Obrigado pela Ajuda.
Agora vou Procurar saber mai sobre o Look and Feels nos livros aqui.
valew.

eu posso por exemplo em uma interface metalica transformar apenas um jButton para Nimbus ou Windows ?

[quote=colosos=colossus]eu posso por exemplo em uma interface metalica transformar apenas um jButton para Nimbus ou Windows ?
[/quote]

Minha dúvida também.
:slight_smile:

[quote=mcirqueira][quote=colosos=colossus]eu posso por exemplo em uma interface metalica transformar apenas um jButton para Nimbus ou Windows ?
[/quote]

Minha dúvida também.
:slight_smile: [/quote]

Não. Você pode remover o L&F de determinados componentes, mas não pode usar 2 simultaneamente.

:thumbup:

Como :?:

Como :?:
[/quote]

Depende do componente que você queira.

:thumbup:

Bom vídeo para entender como realizar a mudança do look and fell em projetos utilizando o Netbeans:
http://www.cgmautomacao.com.br/cms/artigos/38-java/83-java-lef.html

Abcs!