JavaDabbaDoo.org -Tu comunidad Java parlante Houston,tenemos un problema
Inicio | Houstons

Cómo puedo insertar una imagen de fondo en un JPanel

Para darle un toque más personal a mis aplicaciones Swing he pensado poner imágenes de fondo a los componentes JPanel. ¿Qué código tengo que escribir para que los objetos de tipo JPanel tengan una imagen de fondo asociada?

Respuesta

Para insertar por ejemplo la imagen cuaderno.png en un JPanel

Cuadriculas de un cuderno

con el siguiente resultado tenemos que realizar lo siguiente

imagen fondo en JPanel

Crear una Clase que herede de JPanel y entonces sobreescribimos el método paintComponent(..)

Antes de crear la clase conozcamos una de las signaturas del método drawImage(...) de la Clase Graphics

public abstract boolean drawImage(Image img, int x, int y, ImageObserver observer)

Este es el código de la Clase ImagenFondoPanel que hereda de JPanel

package paqswing;

import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;

public class ImagenFondoPanel extends javax.swing.JPanel {
 private Image imgFondo;

 public ImagenFondoPanel() {
  preInit();

  initComponents();
 }

 private void initComponents() {
  .
  .
  .

 }

 private void preInit(){
  imgFondo = new ImageIcon(getClass().getResource("/imagenes/cuaderno.png")).getImage();
 }

 protected void
paintComponent(Graphics g) {
  
g.drawImage(imgFondo,0,0,null);
 }
}

Ahora sólo queda crear la Clase ImagenFondoMarc para añadirle nuestro panel.

Ignasi Pérez Valls
asesor-formador independiente
ignasiperez[ARROBA]javadabbadoo[PUNTO]org
JavaDabbaDoo.org
Tu comunidad Java parlante. Cursos abiertos, tutoriales y mucho mucho más ...