Imagem de fundo em um Jpanel

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

Use o JImagePanel do projeto Towel:

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

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

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:

[code]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();
}[/code]
:wink: