Diferença na visualização

Olá.

Estou fazendo um aplicativo no NetBeans. Eu montei a interface normalmente, sem qualquer tipo de problema. Mas por algum motivo a interface aparece diferente dependendo do tipo de visualização escolhido.

No Construtor de GUI’s do NetBeans e na opção “Visualizar desenho”, a interface aparece como desejado:
[URL=http://img340.imageshack.us/i/visual1.png/][/URL] [URL=http://g.imageshack.us/img340/visual1.png/1/][/URL]

Mas se eu compilo o projeto e mando executar, ou se mando construir e abro o arquivo .jar, aparece diferente:
[URL=http://img340.imageshack.us/i/visual2.png/][/URL] [URL=http://g.imageshack.us/img340/visual2.png/1/][/URL]

Por que isso acontece e como corrigir?

Obrigado.

Isso é coisa do “look and feel”, que você tem de setar explicitamente no seu programa para que fique igual ao configurado no NetBeans.

http://java.sun.com/docs/books/tutorial/uiswing/lookandfeel/plaf.html

Use o SystemLookAndFeel

Realmente é diferente… Acho que não rola pq é só uma pré-visualização (sem definir lookandfeel)… No seu caso ele está mudando de tamanho por causa do tamanho da letra e tipo da letra do JLabel… O que vc pode fazer (é o q eu faço) é utilizar o LookAndFeel do seu sistema operacional. Ai fica igualzinho…

Consegui utilizar o LookAndFeel. Funcionou.

Mas só para ter certeza, o SystemLookAndFeel altera a aparência de acordo com o SO, certo?
É comum acontecer algum erro que eu deva tratar?

Obrigado.

[quote=Lucas Ramos]Consegui utilizar o LookAndFeel. Funcionou.

Mas só para ter certeza, o SystemLookAndFeel altera a aparência de acordo com o SO, certo?
É comum acontecer algum erro que eu deva tratar?

Obrigado.[/quote]

Se você estiver usando um gerenciador de leiaute, a princípio não. Agora se você estiver usando o null leiaute e usando setBounds para todos os componentes (acho que não é o caso) aí você sem dúvida terá problemas, pois as fontes mudam com cada look and feel e isso deixaria vários textos “cortados”.

Entendi.

Mais uma vez, obrigado.