yo lo tengo funcionando en un applet y siempre lo he hecho asi:
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(fondo, 0, 0, null); // fondo es en este caso una variable global de tipo Image
}
es probable que no sea la mejor forma, pero bueno...al menos funciona