Fala galera da COMP. To postando aqui pra quem ta cansado do visual do Java.
O meu amigo Guga, me passou um site com uma Biblioteca chamada “substance.jar”, qual que é dessa Biblioteca?? Ela tem vários visuais novos para o Java, e outras coisas também.

Um dos Skins do Substance
Para quem quiser dar uma olhada, acesse o site oficial.
Bem vamos ao que interessa.
Primeiro passo e fazer o Download da Biblioteca “substance.jar” e incluí-la no seu projeto.
Agora vamos à parte mais complicada da mudança do visual.
Para disponibilizar as skins disponíveis da biblioteca substance, usaremos um objeto ArrayList para armazenar essas skins, ficando assim a nossa função:
private void adicionaSkins() {
//Recupera todos os Skins possiveis do pack de Skins
listaSkins = new ArrayList(SubstanceLookAndFeel.getAllSkins().values());
//Adiciona o nome dos Skins no JComboBox
for (int i = 0; i < listaSkins.size(); i++) {
jComboBox1.addItem(listaSkins.get(i).getDisplayName());
}
}
No caso do código acima, foi utilizado um JComboBox para apresentar ao usuário as skins disponíveis.
Continuando… Após a apresentação dos visuais disponíveis para o usuário, quando ele escolher um temos que trocar, assim para realizar a mudança usamos o seguinte código:
//Dispara uma Thread para mudar o Skin que o usuário selecionou
private void mudaSkin() {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
// Pega do JComboBox o index do Skin selecionado, qeu no caso, é o mesmo do ArrayList.
// Atribiu o nome da classe a essa String t.
String t = listaSkins.get(jComboBox1.getSelectedIndex()).getClassName();
// Seta a Skin nova pelo nome da classe da Skin
SubstanceLookAndFeel.setSkin(t);
repaint();// repaint para atualizar a tela.
}
});
}
Como podemos ver no código acima, de acordo com o índex do JComboBox, o nome da classe é adquirido no nosso ArrayList de Skins, e atribuído ao visual do Java pela função: SubstanceLookAndFeel.setSkin(), passando como parâmetro o nome da classe. Colocando esse método como um evento de um JButton, ou outros, a Skin selecionada será aplicada ao visual do programa Java.
Então gente é isso, espero que tenham entendido como mudar o visual do seu programa Java, deixando mais bonito. “Hhahahah…”
IMPORTANTE
Para que funcione corretamente, seu objeto JFrame tem que ser instanciado como uma Thread, exemplo.
public static void main(String[] args) {
// Permite mudar a barra com o fechar, maximizar etc...
JFrame.setDefaultLookAndFeelDecorated(true);
// Para criar a Thread
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new SUACLASSEVISUAL().setVisible(true);
}
});
}
A linha de código: JFrame.setDefaultLookAndFeelDecorated(true);, serve para que a barra com o ” _ [] X “, famoso minimizar, maximizar e fechar, também mude com o tema.
Então é isso…
[Vorti]
Muito bom post Vorti!!
Alterei um pouquinho… coloquei o MORE pra não ficar o post todo na primeira página e coloquei uma imagenzinha pra ajudar a galera a ver…
O texto ficou fenomenal!
Parabéns cara!
Ao vorti…
sensacional mesmo…e parabens pela primeiro post no blog da galera.
abracao a todos
Galera, achei um site com diversos LAF. Quem precisar dá uma olhadinha:
http://javabyexample.wisdomplug.com/component/content/article/37-core-java/65-20-free-look-and-feel-libraries-for-java-swings.html
Abraços.
Eu tentei adicionar este codigo em meu projeto, mas não deu resultado…
eu utilizo o eclipse e adicionei a biblioteca “Substance.jar” em meu projeto, mas quando tento executar o projeto ele acusa vários erros.
se possivel gostaria de receber um projeto que já esteja funcionando, tentei varias vezes sem sucesso.
pode ser um form simples; com o combobox que selecione os skins.
se alguém tiver, agradeço desde Já.
e ai Márcio, vc pode me passar os erros que estão aparecendo?? Me evnia no email, ou como preferir.
vc viu que para funcionar, sua classe JFrame tem que ser instanciada como uma nova thread.
Não tenho uma calsse pronta com isso, pois faz muito tempo que fiz isso.