JPanel com imagem de fundo
Postado por ugleiton dia 17 de dezembro de 2010 as 10:47
As vezes quebramos muito a cabeça com pouca coisa, então resolvi disponibilizar meu JPanel personalizado que dá a opção de escolher uma imagem pelas propriedades do NetBeans, esse panel tem todas as propriedades de um panel normal, pois o mesmo extends da classe JPanel.
Antes de tudo é preciso adicionar o componente "uJPanelImagem",que está no .jar para download no fim do post , a paleta do NetBeans, para adicionar siga os passos descritos no post "Adicionando Componentes a Paleta do NetBeans".
Como utilizar uJPanelImagem?
- Escolha o componente UJPanelImagem.
- Selecione o mesmo para mostrar as propriedades
- Procure pela propriedade imagem e clique no botão a direita do nome.
- Escolha sua imagem.
- Pronto, agora você pode arrastar e redimensionar seu jPanel com imagem de fundo. Obs: se vc estiver utilizando uma imagem transparente, sete a opção opaque no panel.
Download
O Leonardo preencheu um formulário de contato me procurando, mas não consegui encontrar o email para retornar, então segue abaixo o código da classe com algumas modificações.
Criei um método novo chamado setImagemUrl que ainda não testei mas acho que roda...rsrs
Se (der erro) então{
É só não usar o método; \\a classe irá funcionar normalmente como antes
}
import java.awt.Graphics;
import java.awt.Image;
import java.awt.LayoutManager;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JPanel;
/**
*
* @author Ugleiton
*/
public class UJPanel extends JPanel {
private File imagemFile = null;
private String imagemUrl = null;
private Image imagem = null;
public UJPanel() {
super();
}
public UJPanel(LayoutManager lm) {
super(lm);
}
public UJPanel(boolean bln) {
super(bln);
}
public UJPanel(LayoutManager lm, boolean bln) {
super(lm, bln);
}
@Override
protected void paintComponent(Graphics g) {
try {
g.drawImage(imagem, 0, 0, this.getWidth(), this.getHeight(), this);
} catch (Exception e) {
} finally {
super.paintComponent(g);
}
}
public void setImagem(Image imagem) {
this.imagem = imagem;
}
public void setImagemFile(File imagemFile) {
try {
this.imagemFile = imagemFile;
if (imagemFile != null) {
this.imagem = ImageIO.read(imagemFile);
} else {
imagem = null;
}
} catch (IOException ex) {
}
}
public String getImagemUrl() {
return imagemUrl;
}
public void setImagemUrl(String imagemUrl) {
this.imagemUrl = imagemUrl;
this.imagemFile = new File(this.imagemUrl);
try {
if (imagemFile != null) {
this.imagem = ImageIO.read(imagemFile);
} else {
imagem = null;
}
} catch (IOException ex) {
}
}
public File getImagemFile() {
return imagemFile;
}
public Image getImagem() {
return imagem;
}
}











