imagen de fondo y jmenubar

Hola buen dia, he estado batallando y la verdad no se que estoy haciendo mal, en mi proyecto se me ocurrio ponerle una imagen de fondo, pero al momento de poner un jmenubar, este no me lo muestra, corro el programa y me dice q tiene errores pero no me muestra q errores, el codigo es el siguiente:

class Principal

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import java.awt.Font;
import java.awt.Color;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;

public class Principal extends JFrame {

        private static final long serialVersionUID = 1L;
        private JPanel contentPane;

        public static void main(String[] args) {
                EventQueue.invokeLater(new Runnable() {
                        public void run() {
                                try {
                                        Principal frame = new Principal();
                                        frame.setVisible(true);
                                } catch (Exception e) {
                                        e.printStackTrace();
                                }
                        }
                });
        }

       
        public Principal() {
                setTitle("Red Neuronal Perceptron OR");
                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                setBounds(400, 100, 435, 196);
               
                contentPane = new Fondo("descartes.jpg");
                contentPane.setForeground(new Color(51, 153, 153));
                contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
                setContentPane(contentPane);
               
                JMenuBar menuBar = new JMenuBar();
                setJMenuBar(menuBar);
                menuBar.setVisible(true);
               
                JMenu mnInicio = new JMenu("Inicio");
                menuBar.add(mnInicio);
               
                JMenuItem mntmArchivo = new JMenuItem("Archivo");
                mnInicio.add(mntmArchivo);
               
                JMenuItem mntmGuardar = new JMenuItem("Guardar");
                mnInicio.add(mntmGuardar);
               
                JMenu mnSalir = new JMenu("Salir");
                menuBar.add(mnSalir);
               
                JMenuItem mntmSalir = new JMenuItem("Salir");
                mnSalir.add(mntmSalir);
               
               
               
                JButton btnIniciarRna = new JButton("Iniciar RNA");
                btnIniciarRna.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                                IniciarRNA Iniciar =new IniciarRNA();
                                Iniciar.setVisible(true);
                        }
                });
                btnIniciarRna.setForeground(Color.WHITE);
                btnIniciarRna.setBackground(new Color(204, 204, 51));
                btnIniciarRna.setMnemonic('I');
                btnIniciarRna.setFont(new Font("Tahoma", Font.BOLD, 13));
               
                JButton btnVerDatosRna = new JButton("Ver datos RNA");
                btnVerDatosRna.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                                VerDatos VerDatos= new VerDatos();
                                VerDatos.setVisible(true);
                        }
                });
                btnVerDatosRna.setForeground(Color.WHITE);
                btnVerDatosRna.setBackground(new Color(204, 204, 51));
                btnVerDatosRna.setMnemonic('V');
                btnVerDatosRna.setFont(new Font("Tahoma", Font.BOLD, 13));
               
                JButton btnSalir = new JButton("Salir");
                btnSalir.setForeground(Color.WHITE);
                btnSalir.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent arg0) {
                                System.exit(0);
                        }
                });
                btnSalir.setBackground(new Color(204, 204, 51));
                btnSalir.setMnemonic('S');
                btnSalir.setFont(new Font("Tahoma", Font.BOLD, 13));
                GroupLayout gl_contentPane = new GroupLayout(contentPane);
                gl_contentPane.setHorizontalGroup(
                        gl_contentPane.createParallelGroup(Alignment.LEADING)
                                .addGroup(gl_contentPane.createSequentialGroup()
                                        .addGap(38)
                                        .addComponent(btnIniciarRna)
                                        .addPreferredGap(ComponentPlacement.UNRELATED)
                                        .addComponent(btnVerDatosRna)
                                        .addPreferredGap(ComponentPlacement.UNRELATED)
                                        .addComponent(btnSalir)
                                        .addContainerGap(60, Short.MAX_VALUE))
                );
                gl_contentPane.setVerticalGroup(
                        gl_contentPane.createParallelGroup(Alignment.TRAILING)
                                .addGroup(gl_contentPane.createSequentialGroup()
                                        .addContainerGap(103, Short.MAX_VALUE)
                                        .addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
                                                .addComponent(btnIniciarRna, GroupLayout.PREFERRED_SIZE, 34, GroupLayout.PREFERRED_SIZE)
                                                .addComponent(btnVerDatosRna, GroupLayout.PREFERRED_SIZE, 33, GroupLayout.PREFERRED_SIZE)
                                                .addComponent(btnSalir, GroupLayout.PREFERRED_SIZE, 33, GroupLayout.PREFERRED_SIZE))
                                        .addContainerGap())
                );
                contentPane.setLayout(gl_contentPane);
               
               
        }
}

Clase Fondo

import java.awt.Dimension;
import java.awt.Graphics;

import javax.swing.ImageIcon;
import javax.swing.JPanel;

public class Fondo extends JPanel {
        ImageIcon imagen;
       

        private static final long serialVersionUID = 1L;

        public Fondo(String nombre) {
               
                imagen=new ImageIcon(getClass().getResource(nombre));
                setSize(imagen.getIconWidth(),imagen.getIconHeight());
               

        }
        protected void paintComponent(Graphics g){
                Dimension d = getSize();
                g.drawImage(imagen.getImage(), 0,0, d.width, d.height,null);
                this.setOpaque(false);
                super.paintComponent(g);
        }

}

Espero me puedan ayudar que estoy haciendo mal, gracias.