Background Image for MDI Form using java

Step 1: Create a class that inherit(extends) JDesktopPane class

class JDesktopBackground extends JDesktopPane {

private Image image;
private BufferedImage scaledImage;
private int cachedHeight = -1;
private int cachedWidth = -1;
public JDesktopBackground(Image image) {
super();
this.image = image;
}

protected void paintComponent(Graphics g) {
if (cachedHeight != getHeight() && cachedWidth != getWidth())
createScaledImage();
g.drawImage(scaledImage, 0, 0, this);
}

private void createScaledImage() {
cachedWidth = getWidth();
cachedHeight = getHeight();
if (cachedWidth > 0 && cachedHeight > 0) {
scaledImage = new BufferedImage(cachedWidth, cachedHeight,
BufferedImage.TYPE_INT_RGB);
scaledImage.createGraphics().drawImage(
image,
AffineTransform.getScaleInstance(((float) cachedWidth)
/ image.getWidth(this), ((float) cachedHeight)
/ image.getHeight(this)), null);
} else
scaledImage = new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB);
}

}
Step 2: Create MDI Form
Here i create MDI Form named addpicinmdi and do the following (see statement written in italic forms)

public class addpicinmdi extends javax.swing.JFrame {

JDesktopPane desktopPane;
BufferedImage bf=null;
public addpicinmdi() throws IOException {
bf=ImageIO.read(getClass().getResourceAsStream("/test/r.jpg"));
//initialize variable
desktopPane = new JDesktopBackground(bf);

}