I'm going to make a game with Java, my game will have a menu. the menu is having a background, and 2 `JLabel` objects. I've make them on separate class, which is passed to one `JFrame`. And my problem is, I've load 2 of them on a single frame, but one of them always hidden by another.

this is the code:

JFrame class
------------

```
@SuppressWarnings("serial")
public class Sistem extends JFrame{
private final int lebar=954;
private final int tinggi=540;
private Image bg;
File gbr=new File("res/a.jpg");

public Sistem(){
    this.setTitle("Unknown man Unkown power");
    this.setSize(new Dimension(lebar,tinggi));
    this.setFocusable(true);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setResizable(false);
    this.setContentPane(new Ngrep());
    //this.setContentPane(new Menu());

    this.setVisible(true);
    //loadfont();
    //loadbg();

}

public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {

        @Override
        public void run() {
            // TODO Auto-generated method stub
            new Sistem();
        }
    });
}

}

```

background class
----------------

```
@SuppressWarnings("serial")
public class Ngrep extends JPanel{
private int l=954;
private int t=540;
private BufferedImage bg;
File gbr=new File("res/a.jpg");

public Ngrep(){
    loadbg();

}

private void loadbg() {
    // TODO Auto-generated method stub
    try {
        bg=ImageIO.read(gbr);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

@Override
public void paint(Graphics g) {
    // TODO Auto-generated method stub
    super.paint(g);
    g.drawImage(bg, 0, 0, l, t, null);
}

}

```

menu class
----------

```
@SuppressWarnings("serial")
public class Menu extends JPanel implements Runnable,KeyListener{
private int l=954;
private int t=540;
JLabel menu1=new JLabel("MULAI BARU");
JLabel menu2=new JLabel("KELUARRR");
private File fo=new File("res/Mawns.ttf");
JLayeredPane p=new JLayeredPane();

public Menu(){
    loadfont();

    this.add(menu1);
    this.add(menu2);
}

public void loadfont(){
    try {
        FileInputStream fi=new FileInputStream(fo);
        Font f=Font.createFont(Font.TRUETYPE_FONT, fi).deriveFont(Font.TRUETYPE_FONT, 30);
        GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment();

        ge.registerFont(f);

        menu1.setFont(f);
        menu2.setFont(f);

    } catch (Exception ex) {
        // TODO Auto-generated catch block
        ex.printStackTrace();
    }
    p.setLayout(new GridLayout(2, 3));

    menu1.setBounds(0, 0, getWidth(), getHeight());
    menu2.setBounds(0, 0+menu1.getHeight(), getWidth(), getHeight());

    p.add(menu1, 2);
    p.add(menu2, 2);
}

}

```

What I want is the menu is in front of background but background still can be seen. and how to arrange the `JLabel` that I've created to center down of the screen.

How can I achieve the required layout?