JLabel Sobrepondo outra JLabel

Boa tarde Pessoal,

Usei uma JLabel para colocar uma imagem de fundo, mas quando vou adicional novas imagens com JLabel elas acaba não aparecendo, a imagem de fundo esta por cima de todo os outros conteúdo do sistema.

public class ArduJavaView extends JFrame implements ActionListener{

   public static Container ctnPrincipal;
   public static JLabel lblimg,lblFarol[];
   
    public ArduJavaView() {
           ctnPrincipal = new Container();
           this.add(ctnPrincipal);
       
       //intanciando a imgem de fundo do sistema
       lblimg = new JLabel(new ImageIcon("img/ImagemDeFundoArduJava.jpg"))/*(new ImageIcon("img/ImagemDeFundoArduJava.jpg"))*/;
       lblimg.setSize(600,600);
       ctnPrincipal.add(lblimg);
       
       //Caixa de Textos
       txtHora = new JTextField();
       txtHora.setBounds(250,365,100,30);
       ctnPrincipal.add(txtHora);
       
       //Botões
       btnIr = new JButton(new ImageIcon("img/BotaoIr.png"));
       btnIr.setBounds(370,365,90,35);
       btnIr.setBackground(new Color(0,0,0,0));
       btnIr.setBorder(null);
       btnIr.setVisible(true);
       ctnPrincipal.add(btnIr);
       
       //Labels
       lblFarol = new JLabel[1];
       lblFarol[0]= new JLabel(new ImageIcon("img/FarolVerde.png"));
       lblFarol[0].setBounds(20,20,100,100);
       lblFarol[0].setVisible(true);
       ctnPrincipal.add(lblFarol[0]);
       
       
       this.setDefaultCloseOperation(EXIT_ON_CLOSE);//Comando para encerrar o programa ao fecha-lo
       this.setSize(600,600);
       this.setResizable(false);//tirando o maximizar do programa
       this.show();
       this.setLocationRelativeTo(null);//iniciando o programa no centro da tela
       
    }