Look & Feel somente em JButton

Galera eu estou ultilizando o Look & Feel do proprio SO assim:

javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager.getSystemLookAndFeelClassName());

Mas quero q todos os JButton da aplicação ultilize o L&F que eu criei!!
Alguem sabe como posso fazer isso?

Magorv,

deixa eu ver se entendi. Você criou um look and feel próprio e quer usá-lo na sua aplicação. É isso?

O procedimento é o seguinte. Crie um .jar contendo os arquivos seu L&F e adicione ao projeto. (Não precisa ser um arquivo jar, pode ser as classes dentro do projeto mesmo)

Utilize esse trecho de código assim:

try {
UIManager.setLookAndFeel(“CAMINHO_DO_LOOK_AND FEEL_DENTRO_DA_APLICAÇÃO”);
} catch (Exception e) {
// …
}

Alguns exemplos:

  • “net.sourceforge.napkinlaf.NapkinLookAndFeel”
  • “com.shfarr.ui.plaf.fh.FhLookAndFeel”
  • “com.jgoodies.looks.plastic.PlasticXPLookAndFeel”

Espero ter ajudado. Se não consegui reponder a contento, é só falar.

[quote=Petrônio Braga]Magorv,

deixa eu ver se entendi. Você criou um look and feel próprio e quer usá-lo na sua aplicação. É isso?


[/quote]

Mano eh +/- isso, eu criei um look and feel para os JButton, mas eu quero que os restantes dos componente continuem ultiliznado o L&F do proprio sitema.

eu coloquei:

javax.swing.UIManager.setLookAndFeel("goiasSoftware.componente.loockAndFeel");

aconteceu que o sitema ficou com a aparencia do swing (eh claro), mas pelo q eu intendi era pra ficar pelo menos o botoes com a aparecia q eu criei, mas nao fico!!

O q posso ta fazendo de errado???

Magorv,

você poderia me passar esse arquivo contendo o seu L&F persinalizado para fazer uns testes?

Aí eu posso dar uma olhada melhor e ver como solucionar seu problema.

[quote=Petrônio Braga]Magorv,
você poderia me passar esse arquivo contendo o seu L&F persinalizado para fazer uns testes?..
[/quote]

Posso sim!!

Esta aki, GSButtonGlassUI, coloquei ai pq achei o fonte meio grande para por em post de forum.

Cara, se nao me engano o LAF faz o seguinte…
a partir do momento que tu setar um novo LAF, todos os componentes que tu
vier a criar vai possui o LAF setado, os antigos nao, eles vao continuar com
o LAF antigo.

Entao acho que tu nao vai conseguir usar 2 LAF num mesmo sistema…

Tu pode estender os LAF basico do java e soh mudar o botao :wink:

Magorv, o que fabiofalci comentou está certo.

É o seguinte. Segundo encontrei no site da SUN (Creating a Custom Look and Feel - http://java.sun.com/products/jfc/tsc/articles/sce/index.html), você sempre extende o seu L&F de outro (veja figura 1).

Para facilitar, em vez de você extender do Basic L&F, você pode extender de qualquer outro L&F. No site (http://www.javootoo.com/) tem diversos para baixar.

A paritr deles tu podes fazer ajustes nos componentes que quiser, no seu caso no componente ButtonUI. Além disso, é necessário a mudança na classe …LookAndFeel.java. Dentro dela tem um método que você precisa fazer uns pequenos ajuste.

public UIDefaults getDefaults() {

}

Só exemplificando. Se você que mudar só o Botão. Vamos setar como, javax.swing.plaf.metal, o resto dos componentes.

public UIDefaults getDefaults() {

UIDefaults result=super.getDefaults();

// Bind the UI classes to the respective components
String packageName = “nomePacote”;

result.put(“ButtonUI”, packageName+“ButtonUI”);
result.put(“FileChooserUI”, “javax.swing.plaf.metal.” + “MetalFileChooserUI”);
result.put(“LabelUI”, “javax.swing.plaf.metal.” + “MetalLabelUI”);
result.put(“MenuBarUI”, “javax.swing.plaf.metal.” + “MetalMenuBarUI”);

...

}

Pega deste site, http://www.digitprop.com/p.php?page=toniclf_download&lang=eng, o código do L&F. Aí tu fazes as mudanças que te falei. Neste, L&F tem um erro numa classe que é só mudar a visibilidade do método.
Pronto, acho que isso poderá ajudar. Cria em cima de algum L&F pronto. Vai facilitar bastante a sua vida.

[quote=Petrônio Braga]Magorv, o que fabiofalci comentou está certo.

É o seguinte. Segundo encontrei no site da SUN (Creating a Custom Look and …
[/quote]

Aeee galera, vlws pela ajuda, acho q agora vai dar certo!!
Vou tentar aki, e qualquer coisa posso aki, msm dando certo!!!