create a custom JPanel, e.g.
public class BackgroundJPanel extends JPanel {
Image backImage;
public BackgroundJPanel() {
super();
//load the image
}
public void paint(Graphics g) {
//g.drawImage(image, ....)
//If you want to tile the image, repeat the image many times
}
}
Now, you can use this class instead of JPanel