JFrame com imagem de fundo e JLabel por cima

3 respostas
reolca

Olá, pessoal.

Eu tenho um JFrame ao qual coloco uma imagem de fundo, através do método paint.

Quando eu coloco um label por cima (chamado lblNote), o fundo do label fica cinza (já que a cor do background do JFrame é cinza e a imagem só foi colocada por cima desse background).

Eu gostaria que o background do JLabel ficasse transparente, deixando a imagem de fundo que coloquei anteriormente.

O código do método paint do JFrame está abaixo:

public void paint(Graphics g) {
        
        super.paint(g);
        
        int x = (this.getWidth() - planoDeFundo.getWidth(null)) / 2;
        int y = (this.getHeight() - planoDeFundo.getHeight(null)) / 2;
        g.drawImage(planoDeFundo, x, y, this );
        
        lblNote.repaint();
    }

Se eu colocar lblNote.paint(g) ao invés de lblNote.repaint(), dá certo e o label leva em conta a imagem de fundo, mas ele é desenhado nas coordenadas 0,0 do JFrame (topo superior esquerdo). Já tentei colocar a posição do JLabel depois disso por meio de um setLocation, mas aí o fundo cinza volta. :frowning:

Alguém sabe como posso resolver esse problema?

Um grande abraço para todos!

3 Respostas

root_

De uma olhada nesse tópico aqui: http://www.guj.com.br/posts/list/54249.java. Talvez se interesse e te ajude!

reolca

Muito obrigado pela resposta, mas não ajudou no meu problema.

Abração.

guigouz

Você não precisa chamar o lblNote.repaint(); no código.
Já verificou se a propriedade opaque do label está desativada ? lblNote.setOpaque(false);

Criado 25 de junho de 2007
Ultima resposta 26 de jun. de 2007
Respostas 3
Participantes 3