JLayeredPaneを使うのがいいんじゃないでしょうか。
Java
1import java.awt.Color;
2import javax.swing.JFrame;
3import javax.swing.JLayeredPane;
4import javax.swing.JPanel;
5
6class Sample extends JFrame {
7 public static void main(String[] args) {
8 new Sample().setVisible(true);
9 }
10
11 Sample() {
12 setSize(600, 400);
13 setLocationRelativeTo(null);
14 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
15
16 JLayeredPane layered = new JLayeredPane();
17 add(layered);
18
19 JPanel p1 = new JPanel();
20 p1.setBounds(0, 0, 100, 100);
21 p1.setBackground(Color.RED);
22 layered.add(p1);
23
24 JPanel p2 = new JPanel();
25 p2.setBounds(50, 50, 100, 100);
26 p2.setBackground(Color.BLUE);
27
28 // 青が赤の下になる
29 // layered.add(p2);
30
31 // Integerで数値を渡すと大きいほど上
32 // 注)ただのintではダメ
33 layered.add(p2, Integer.valueOf(1));
34
35 // 引数3つ版では0が一番上(ややこしいw
36 // layered.add(p2, JLayeredPane.DEFAULT_LAYER, 0);
37 }
38}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。