Otra cosa que podrías hacer es la siguiente
Tienes el JFrame normalito, le agregas un JLayeredPane de la paleta, luego le agregas un panel o lo que quieras, le quitas la selección a Opaque, y luego le añades un JLabel, y le colocas la imagen al JLabel. Lo que hace JLayeredPane es dar la posibilidad de contener todos los componentes que se deseen, uno debajo de otro y en cualquier orden (A diferencia de cualquier otro Container que solo permite un componente al lado de otro)
Espero que te halla servido
Saludos,
Fredy Alberto García Güiza
Universidad Distrital Fco José de Caldas
Bogotá, Colombia