Erro com Jlabel... ou melhor, Problemas com o Jframe

Meus caros, saudações e um ótimo dia a todos. Não enrolarei muito. Fiz uma atividade para praticar mesmo, no que consiste criar uma aplicação Java, com dados de carros que será mostrado no jframe e jlabel. Segue o codigo abaixo.

package banco.de.dados;
import javax.swing.*;



public class BancoDeDados {
     public static void main (String[] args){

         Ferrari carro;
         carro = new Ferrari();
         carro.Ferrari();
         carro.Ferrari1();
         carro.Ferrari2();
         carro.Ferrari3();
         carro.Ferrari4();
         carro.Ferrari5();
         
         
     }
   
    public String Modelo;
    public int Numero_do_modelo;
    public String Letras_adicionais_do_modelo; 
    public int Velocidade ;

   
    //setter-getter de modelo do carro
    public String getModelo(){
        return this.Modelo;
    }
    public void setModelo(String Modelo){
        this.Modelo=Modelo;
    }
    
    //getter-setter do numero do modelo do carro    
    public int getNumero_do_modelo(){
        return this.Numero_do_modelo;  
    }
    public void setNumero_do_modelo(int Numero_do_modelo){
        this.Numero_do_modelo=Numero_do_modelo;}

    //getter-setter das letras existentes na id do modelo do carro
    public String getLetras_adicionais_do_modelo(){
        return this.Letras_adicionais_do_modelo;
    }
    public void setLetras_adicionais_do_modelo(String Letras_adicionais_do_modelo){
        this.Letras_adicionais_do_modelo=Letras_adicionais_do_modelo;}
    
    //getter-setter da velocidade que o veiculo alcança
    public int getVelocidade (){
        return this.Velocidade;
    }
    public void setVelocidade(int Velocidade){
        this.Velocidade=Velocidade;
    
    
    
 {System.out.println("Exemplo de um banco de dados pequeno");
 {System.out.println("-------------------------------------");
 {System.out.println("Dados de automoveis com maior valor financeiro e alcance de velocidade"); 
 {System.out.println("----------------------------------------------------------");  
 {System.out.println("\n");
   
 


 }}}}
 
 //adicionar layout do projeto
 
 
  JFrame frame;
        frame = new JFrame ("Autopedia");
         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         frame.setSize(950, 534);
         frame.setLayout(null);
        ImageIcon icon = new ImageIcon("C:\\carro_BancoDeDados.jpg");
        
         
         //instanciação do testo
         
        
         JLabel label = new JLabel("Este teste consiste em um pequeno banco de dados,"
                 +"\n "+" onde está registrado os carros mais rapidos e com design inovador/chamativo que existem pelo mundo.", JLabel.LEFT);
         JLabel label1 = new JLabel("\n", JLabel.LEFT);
         JLabel label2 = new JLabel("Exemplo de um banco de dados pequeno", JLabel.LEFT);
         JLabel label3 = new JLabel("\n", JLabel.LEFT);
         JLabel label4 = new JLabel("Dados de automoveis com maior valor financeiro e alcance de velocidade", JLabel.LEFT);
         JLabel label5 = new JLabel("\n", JLabel.LEFT);
         JLabel label6 = new JLabel("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------", JLabel.LEFT);
         JLabel label7 = new JLabel("\n", JLabel.LEFT);
         JLabel label8 = new JLabel("Por favor, selecione uma alternativa abaixo:", JLabel.LEFT);
         
         
  
         
         
         //parametros do texto
         label.setBounds(0, 1, 800000, 20);
         label1.setBounds(0, 12, 800000, 20);
         label2.setBounds(0, 24, 800000, 20);
         label3.setBounds(0, 36, 800000, 20);
         label4.setBounds(0, 48, 800000, 20);
         label5.setBounds(0, 60, 800000, 20);
         label6.setBounds(0, 72, 800000, 20);
         label7.setBounds(0, 84, 800000, 20);
         label8.setBounds(0, 96, 800000, 20);
         
         
         
         //adicionar o texto

         
         frame.add(label);
         frame.add(label1);
         frame.add(label2);
         frame.add(label3);
         frame.add(label4);
         frame.add(label5);
         frame.add(label6);
         frame.add(label6);
         frame.add(label8);
       
         
         //botoes do projeto
         JButton button = new JButton("Carros espertivos");
         button.setBounds(50, 120, 360, 40);
         frame.add(button);
         
         JButton button1 = new JButton("Carros populares");
         button1.setBounds(50, 168, 360, 40);
         frame.add(button1);
             
  
         
         
 
 frame.setVisible(true);
  
 

   
}}}

Segunda parte :

package banco.de.dados;






public class Ferrari extends BancoDeDados{
    
  public void Ferrari(){
            this.setModelo("Italia");
            this.setNumero_do_modelo(458);
            this.setLetras_adicionais_do_modelo("  ");
            this.setVelocidade(325);
        
        
            System.out.print("A ferrari " + Modelo + " " + Numero_do_modelo + " pode chegar a " + Velocidade + " Km por hora.");
            
   
  }
  
public void Ferrari1(){
            this.setModelo("Testarossa");
            this.setNumero_do_modelo(0);
            this.setLetras_adicionais_do_modelo("  ");
            this.setVelocidade(290);
        
        System.out.println("\n");
        
            System.out.print("A ferrari " + Modelo + " " + " pode chegar a " + Velocidade + " Km por hora.");
            
  
  
  
}
public void Ferrari2(){
            this.setModelo("");
            this.setNumero_do_modelo(348);
            this.setLetras_adicionais_do_modelo("TB");
            this.setVelocidade(272);
        
             System.out.println("\n");
        
            System.out.print("A ferrari "+ Numero_do_modelo + Letras_adicionais_do_modelo + " pode chegar a " + Velocidade + " Km por hora.");
            
   
 }

public void Ferrari3(){
            this.setModelo("GTB/4");
            this.setNumero_do_modelo(275);
            this.setLetras_adicionais_do_modelo("Berlinetta 1967");
            this.setVelocidade(150);
        
             System.out.println("\n");
        
            System.out.print("A ferrari "+ Numero_do_modelo +" "+ Modelo+" "+Letras_adicionais_do_modelo + " pode chegar a " + Velocidade + " Km por hora.");
            

}
public void Ferrari4(){
            this.setModelo("Dino");
            this.setNumero_do_modelo(246);
            this.setLetras_adicionais_do_modelo("GTS 1971");
            this.setVelocidade(140);
        
             System.out.println("\n");
        
            System.out.print("A ferrari "+ Modelo+" "+Numero_do_modelo+" "+Letras_adicionais_do_modelo + " pode chegar a " + Velocidade + " Km por hora.");
            
            
            
}
            public void Ferrari5(){
            this.setModelo("GTO 1962");
            this.setNumero_do_modelo(250);
            this.setLetras_adicionais_do_modelo("");
            this.setVelocidade(300);
        
             System.out.println("\n");
        
            System.out.print("A ferrari "+Numero_do_modelo+" "+Modelo + " pode chegar a " + Velocidade + " Km por hora.");
            
            
}

}

E também criei um Jlabel com uma imagem, para colocar no fundo, seguindo os tutoriais presentes no GUJ e tbm no site da NetBeans : (peguei o codigo fonte criado no termino da imagem colocada)

package banco.de.dados;

/**
 *
 * @author CS9399
 */
public class ImageDisplay extends javax.swing.JFrame {

    /**
     * Creates new form ImageDisplay
     */
    public ImageDisplay() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/me/myimageapp/newpackage/carro_BancoDeDados.jpg"))); // NOI18N
        jLabel1.setText("jLabel1");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 1174, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 657, Short.MAX_VALUE)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>                        

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(ImageDisplay.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(ImageDisplay.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(ImageDisplay.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(ImageDisplay.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new ImageDisplay().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JLabel jLabel1;
    // End of variables declaration                   

    void Imagedisplay() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
}

E com isso chego ao meu problema: Os dois codigos estão rodando ok( o jlabel com a imagem é a de um carro), mas… como eu posso juntar os dois, de modo que a imagem fique no fundo e não sobreponha os jlabel’s que eu ja coloquei ? ( meu foco era não alterar o codigo principal kkkk)

Obs: ja ajustei a imagem para “caber” no jframe criado no primeiro codigo (949x534)

Desde já agradeço. Sucesso para todos.