Well, I'm confused by what your code is supposed to do. Let me see if I can step through it...
You have a JPanel backgnd, which you add a JLabel label1 to.
You have a JPanel panel, which you add a JLabel label to.
There is a third JPanel, the JFrame's ContentPane, which you give an OverlayLayout, but you pass panel into that instead. Why?
You then add label to the frame, which actually adds it to the ContentPane, although label has already been added to panel. Why?
Then you add backgnd to the frame's ContentPane, although you have already added the label.
None of this makes much sense to me. I would think you want a single JPanel (probably the ContentPane) that you use an OverlayLayout with and add both JLabels to that JPanel. Not three JPanels which you add the JLabels to multiple times.