Hintergrundbild

Ich habe mit dem Java-Editor (http://javaeditor.org/doku.php)
diesen Code zusammengestellt

import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
 
/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 05.11.2014
  * @author
  */
 
public class Test extends JFrame {
  // Anfang Attribute
  private JLabel jLabel1 = new JLabel();
  private JTextField jTextField1 = new JTextField();
  private JLabel jLabel2 = new JLabel();
  private JLabel jLabel3 = new JLabel();
  private JButton jButton1 = new JButton();
  private JButton jButton2 = new JButton();
  // Ende Attribute
  
  public Test(String title) {
    // Frame-Initialisierung
    super(title);
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int frameWidth = 300;
    int frameHeight = 154;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    setResizable(false);
    Container cp = getContentPane();
    cp.setLayout(null);
    // Anfang Komponenten
    
    jLabel1.setBounds(8, 8, 83, 25);
    jLabel1.setText("Hier eingeben:");
    cp.add(jLabel1);
    jTextField1.setBounds(96, 8, 177, 25);
    cp.add(jTextField1);
    jLabel2.setBounds(96, 40, 179, 25);
    jLabel2.setText("");
    cp.add(jLabel2);
    jLabel3.setBounds(8, 40, 83, 25);
    jLabel3.setText("Hier ausgabe:");
    cp.add(jLabel3);
    jButton1.setBounds(208, 80, 65, 25);
    jButton1.setText("Reset");
    jButton1.setMargin(new Insets(2, 2, 2, 2));
    jButton1.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton1_ActionPerformed(evt);
      }
    });
    cp.add(jButton1);
    jButton2.setBounds(104, 80, 65, 25);
    jButton2.setText("Kopieren");
    jButton2.setMargin(new Insets(2, 2, 2, 2));
    jButton2.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButton2_ActionPerformed(evt);
      }
    });
    cp.add(jButton2);
    // Ende Komponenten
    
    setVisible(true);
  } // end of public Test
  
  // Anfang Methoden
  public void jButton1_ActionPerformed(ActionEvent evt) {
    jTextField1.setText("");
    jLabel2.setText("");// TODO hier Quelltext einfügen
  } // end of jButton1_ActionPerformed
  
  public void jButton2_ActionPerformed(ActionEvent evt) {
    jLabel2.setText(jTextField1.getText());// TODO hier Quelltext einfügen
  } // end of jButton2_ActionPerformed
  
  // Ende Methoden
  
  public static void main(String[] args) {
    new Test("Test");
  } // end of main
  
} // end of class Test```

Wie genau schaffe ich jetzt hinter das ganze noch ein "Hintergrundbild" zu setzen? Bitte um genaue Erklärung da ich noch ein Neuling bin...
wenn ich z.B eine neue Klasse erstellen muss wie binde ich die dann darin ein etc. bitte seeeeeehr genau :3 (oder andeuten)

Warum 2x das gleiche Thema? Hier gehts nach wie vor weiter: http://forum.byte-welt.net/threads/13277-Hintergrundbild