Imagem de fundo em um Jpanel

4 respostas
R

Boa tarde, como faco para colocar uma imagem de plano de fundo em um jpanel?
Ja segui algumas dicas na internet mas nao funcionou

4 Respostas

ViniGodoy

Use o JImagePanel do projeto Towel:

VictorMatuk

ou então no JPanel, coloque o método

public void paintComponent(Graphics g) { super.paintComponent(g); Image background = new ImageIcon(getClass().getResource("nomedaimagem.jpg")).getImage(); g.drawImage(background, 0, 0, this); }

lembrando que a imagem nesse exemplo deve estar na mesma pasta da classe

ViniGodoy

Não é uma boa prática criar o imageicon dentro do paintComponent. Isso irá forçar o carregamento da imagem a cada repaint. Para obter uma performance melhor, crie o Image como atributo do JPanel, carregue a imagem no construtor e só chame o drawImage no paintComponent.

O ImageIcon também não é muito eficiente para carregar imagens. No lugar, o ideal seria usar o método ImageIO.read

Monica_Ponciano
sei que a pergunta é antiga, mas vai que surge outro desesperado igual a mim que não acha resposta em lugar algum rsrs :lol: Eu consegui assim:
ImageIcon fundo = new ImageIcon(getClass().getResource("/images/fundo.png"));

@Override
protected void paintComponent(Graphics g) {
	super.paintComponent(g);
	Graphics2D g2d = (Graphics2D) g.create();
	g2d.drawImage(fundo.getImage(), 0, 0, this.getWidth(), this.getHeight(), null);
	g2d.dispose();
}
:wink:
Criado 20 de abril de 2011
Ultima resposta 13 de ago. de 2012
Respostas 4
Participantes 4