Imagens em app desktop

Pessoal queria tirar 1 duvida besta a respeito de como incrementar o “Look” de uma aplicacao desktop. Seguinte, eu ja fiz algumas apps desktop em Java, mas sem mexer em imagem de botao e tals, deixando td padrao Java mesmo, aquele velho e bom cinza q estamos acostumados a ver. So que agora vo precisar dar 1 incrementada no “Look” dos programas. Ai eu vi uma janela de um programa personalizada e achei interessante. Esta aqui:

Achei bem legal e tals e queria confirmar se p mudar o “Look” eh do jeito q to pensando.

Tipo, ele deixou desse jeito so subtituindo a imagem dos botoes por jpges, pngs, gifs, etc nos jbutton, jpanel, jlabel, etc, eh isso msm? O efeito de rollover do botao qnd coloca o mouse em cima, qnd clica, eh obtido nas configs do proprio jbutton? Pelo q entendi, essa personalizacao eh semelhante ao desenvolver e organizar de imagens em site web, so q num programa desktop, eh por ai?

Quem ja tem pratica nisso, poderia me dar uns toques, por enqto vo vendo se desenrrolo algo, vlw…

desenrrolei, eh apenas 1 look and feel :confused:

agora 1 coisa q n consegui acertar eh como ele colocou esse fundo atras, pq so consegui fazer isso usando jlabel, mas n tem como por componentes em cima do jlabel…

o look and fill da imagem q vc postou ja tem esse fundo…
vc pode baixar bibliotecas com varios lookandfeels…

Tenho uma biblio aqui que é a substance…
faço assim:

try {
	UIManager.setLookAndFeel(new SubstanceBusinessLookAndFeel());
	SubstanceLookAndFeel.setSkin( new org.jvnet.substance.skin.ModerateSkin() );
} 
catch (UnsupportedLookAndFeelException e) { }

alem desse ModerateSkin tem mais uns 30…

procure pelo arquivo substance.jar e inclua no seu classpath

lauro, ela n vem como fundo padrao nao, eu usei esse look and feel da figura e nao saiu c esse fundo, o cara pegou uma das imagens dela q tem esse fundo e fez uma “arrumadinha” ai p ficar c esse fundo, pelo menos eu usei aqui e nao consegui deixar ele assim c esse fundo.

esse metodo “SubstanceLookAndFeel.setSkin()” serve pra q?

vo deixar o arquivo do Look and Feel pra vc ve q nao vem como padrao esse fundo (pelo menos pelo oq testei aqui, so vi ele como fundo d alguns componentes, mas do JPanel por exemplo, ele nao eh padrao):

se vc quer colocar um fundo num jpanel… é complicado mesmo…
escrevi uma classe que faz isso:

import java.awt.Component;   
import java.awt.Graphics;   
import java.awt.Insets;   
import java.awt.image.BufferedImage;   
  
import javax.swing.border.Border;   
  
public class FundoSistema implements Border {   
    private final BufferedImage imagem;   
  
    public FundoSistema() {   
  
                BufferedImage fundo = null;   
    try {   
        fundo = ImageIO.read(new File("grafico/imagens/fundo.png"));   
    } catch (IOException e1) {   
        e1.printStackTrace();   
    }   
  
                this.imagem = fundo;   
    }   
  
    public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {   
        // No Centro   
        int x0 = x + (width-imagem.getWidth())/2;   
        int y0 = y + (height-imagem.getHeight())/2;   
           
        g.drawImage(imagem, x0, y0, null);   
    }   
  
    public Insets getBorderInsets(Component c) {   
        return new Insets(0,0,0,0);   
    }   
  
    public boolean isBorderOpaque() {   
        return true;   
    }   
} 

daí vc seta ela como borda do jpanel:

panel.setBorder(new FundoSistema());  

Meus caros é só chamar este método abaixo initComponents() no construtor…

public void lookandfeel()
{
try
{
UIManager.setLookAndFeel(“com.birosoft.liquid.LiquidLookAndFeel”);
SwingUtilities.updateComponentTreeUI(this);
}
catch(Exception erro)
{
JOptionPane.showMessageDialog(null, “Não conseguiu setar o novo LookAndFeel!!!”);
}
}