[RESOLVIDO] Alterar cor do foco dos componentes

Boa tarde a todos,

desenvolvo uma aplicação que usa o Look and Feel Nimbus.

quando qualquer componente da tela recebe o foco, automaticamente ele é envolvido por uma borda azul, a qual indica que aquele componente está com o foco no momento…

minha duvida é … tem como mudar a cor daquela borda ?

desde ja grato
Alan

Acho que isso vai atender o que você pediu.

No componente que você está querendo trocar a cor da borda vai adiciona o evento FocusGained, para trocar a cor utilize o código abaixo:

jTextField2.setBorder(javax.swing.BorderFactory.createMatteBorder(2, 2, 2, 2, new java.awt.Color(0,0,255)));

o jTextField2 no caso seu será seu componente e o setBorder para vc setar uma borda, no createMatteBorder você especifica o tamanho da borda depois a cor.

Caso queira voltar a cor quando perder o foco adicione o evento FocusLost e deverá setar a borda como null assim: jTextField2.setBorder(null);

Espero ter ajudado.

1 curtida

Olá wil-g2,

obrigado por responder,

desta maneira que vc passou funciona … mas o meu problema é que gostaria de fazer com que todos os componentes que tenho no sistema assumissem essa configuração … como vc disse eu teria que fazer componente por componente e atualmente o sistema já está bem grande … por isso queria ver se tem como mudar alguma configuração no L&F Nimbus para poder ficar como padrão entende…

desde já agradeço

Consegui resolver o problema …

segue a dica para quem precisar

com base nesta pagina
http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/_nimbusDefaults.html#primary
coloquei a seguinte linha de código na minha configuração do L&F Nimbus

UIManager.put( "nimbusFocus", new Color(  140, 42, 42  ) );

com isso consegui alterar a cor padrão de foco do L&F para um vermelho escuro e assim todos os componentes quando recebem o foco ficam com uma borda vermelho escuro.

Agradeço a atenção de todos que de alguma forma tentaram ajudar
Até