Como adicionar um objeto JLabel por cima de uma imagem Graphics, sem que fique um retângulo cinza em volta?

2 respostas Resolvido
K

Fala ae pessoal, eu estou criando um menu de um programa, usando objetos da classe AWT(Graphics) e Swing(JFrame, JPanel, JLabel). Eu desenvolvi um código, onde a imagem de fundo é em Graphics e o texto/caixa de diálogo, são feitos em Swing. Só que eis o problema, quando esses objetos são adicionados por cima da imagem, eles ficam com um retângulo cinza em volta deles, ficando uma coisa feia, e eu gostaria que não tivesse isso, que fosse transparente, tornando assim o programa mais agradável esteticamente. Eis o código:

public static void tela() {
		screen.setPreferredSize(new Dimension(500,500));
		screen.pack();
		screen.setLocationRelativeTo(null);
		screen.setDefaultCloseOperation(screen.EXIT_ON_CLOSE);
		screen.setResizable(false);
		Dialogo();
		screen.setVisible(true);
	}
	
	public static void Dialogo(){
		ImageIcon icone = criarImageIcon("Sol.png","sol");
		pan1.setLayout(fl);
		dialogo1.setFont(fonteGrande);
		pan1.add(dialogo1);
		
		pan2.setLayout(fl);
		dialogo2.setFont(fontePequena);
		pan2.add(dialogo2);
		pan2.add(caixa);
		
		pan3 = new JPanel() {
			public void paintComponent(Graphics g) {
				super.paintComponent(g);
				Image img = icone.getImage();
				g.drawImage(img, 0, 0, this);
			}
		};
		pan3.add(pan1);
		pan3.add(pan2);
		
		screen.add(pan3);
	}
}

E aqui a imagem de como ficou: https://imgur.com/a/NiiczlV

2 Respostas

staroski
Solucao aceita

Você tem que fazer um setOpaque(false) nesses objetos, aí o background será transparente, por default a propriedade opaque é true.

K

Opa, deu certo aqui! Valeu pela resposta rápida. Problema resolvido!

Criado 29 de outubro de 2019
Ultima resposta 29 de out. de 2019
Respostas 2
Participantes 2