Poner una imagen de fondo en un JFrame

2350 vistas

No es posible añadir imágenes de fondo a un componente con las clases estándars de Swing. Por suerte, hacer una clase que lo permita no es muy complicado, bastará con crear un nuevo componente que herede de JComponent y sobrecargar el método paintComponent.

El método paintComponent(Graphique g) se encarga de dibijar el componente.

Ejemplo (Swing):



java
  1. public class MiPanel extends JComponent {
  2.         /** variable de la clase que contiene la imagen a mostrar de fondo */
  3.         private Image bg;
  4.  
  5.         /** Sobrecarga del método paintComponent() para mostrar nuestra imagen */
  6.         public void paintComponent(Graphics g) {
  7.                 g.drawImage(bg,0,0,null);
  8.         }
  9. }



Ejemplo (AWT):



java
  1. public class MiPanel {
  2.         /** variable de la clase que contiene la imagen a mostrar de fondo */
  3.         private Image bg;
  4.  
  5.         /** Sobrecarga del método paint() para mostrar nuestra imagen */
  6.         public void paint(Graphics g) {
  7.                 g.drawImage(bg,0,0,null);
  8.         }
  9. }



Nota:
Podemos poner el componente en el JFrame usando el método setComponentPane(miComponente).