Mira, yo uso una imagen del tamaño del frame.
Por ejemplo hago un dibujito en tuxPaint (Es como el "paint" de window$) y lo guardo al tamaño que necesito.
Entonces:import java.awt.Color;
import java.awt.Graphics;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ImagenFondo
extends JPanel{ // imagen de fondo
// frame donde va este panel
public ImagenFondo(){
// cerrar por defecto, tamanio, visibilidad...
frame.
setDefaultCloseOperation(JFrame.
EXIT_ON_CLOSE); frame.setSize(400,400);
frame.setVisible(true);
frame.add(this); // agrego este mismo panel
// creo el fondo con la ruta de la imagen
// coloco la imagen y le envio las graficas y la posicion
fondo.paintIcon(null, getGraphics(), 0, 0);
}
//pongo un color fondo (no sirve para nada si esta la imagen sobre el)
g.fillRect(0, 0, 400, 400);
//cuando no sale el fondo lo coloco aqui (fondo.paintIcon(null, g, 0, 0);)
}
public static void main
(String[] args
){ new ImagenFondo();
}
}
PD: la imgagen que tengo "img_fondo-PC.png" mide 400x400 y la tengo dentro del proyecto fuera de la carpetas "src" y "bin"