Desktop Pane

Que tal compañeros buen día, tengo un problema y es el siguiente.
estoy haciendo una pequeña aplicacion MDI, y quisiera personalizar el Desktop Pane que viene por defecto, la pregunta es como agregarle una imagen de fondo.
Gracias.

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Por acá ...

 

Por acá anda la respuesta.

P.D. No olvides comentar si te sirvió. =D

~~~

Imagen de chicowed

Mil Gracias

Tuve unos inconvenientes al implementarlo, pero me sirvió muchas gracias.

Imagen de chicowed

Realize lo siguiente espero a alguien le pueda servir

Cree una clase llamada "ImagenFondo.java" que esta compuesta como sigue.

package funciones.directorio.hadas;

import java.awt.Component;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.border.Border;

public class ImagenFondo implements Border {    
    BufferedImage fondo;
    public ImagenFondo(){    
        try {      
            //se obtiene la imagen            
            URL url = new URL(getClass().getResource("/archivos/directorio/hadas/Fondo_Hadas.png").toString());
            fondo = ImageIO.read(url);    
           
        } catch (IOException ex) {
            Logger.getLogger(ImagenFondo.class.getName()).log(Level.SEVERE, null, ex);
        }      
    }
    // se sobreescriben metodos propios de Border
    @Override
    public void paintBorder(Component c, Graphics g, int x, int y, int width, int height){    
        //se dibuja la imagen de fondo en el centro del contenedor
        //cada que se redimensione el contenedor, la imagen automaticamente se posiciona en el centro
        g.drawImage(fondo, (x + (width - fondo.getWidth())/2),(y + (height - fondo.getHeight())/2), null);
    }

    @Override
    public Insets getBorderInsets(Component c){
    return new Insets(0,0,0,0);
    }

    @Override
    public boolean isBorderOpaque(){
    return true;
    }
}

Y la implementacion es la siguiente, en su formulario principal MDI escriben lo siguiente:

escritorio.setBorder(new ImagenFondo());

que en este caso "escritorio" es el nombre de variable del componente Desktop Pane