Boa tarde, como faco para colocar uma imagem de plano de fundo em um jpanel?
Ja segui algumas dicas na internet mas nao funcionou
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]