1、废话不多说,看效果
2、代码:
package UI;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import javax.swing.JLayeredPane;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import java.awt.Font;
import java.awt.Color;
public class test extends JFrame {
private JPanel contentPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
test frame = new test();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public test() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 699, 443);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JLayeredPane layeredPane = new JLayeredPane();
contentPane.add(layeredPane, BorderLayout.CENTER);
JPanel panel = new JPanel();
panel.setBackground(Color.YELLOW);
panel.setForeground(Color.YELLOW);
panel.setToolTipText("");
panel.setBounds(23, 29, 178, 184);
layeredPane.add(panel);
panel.setLayout(new BorderLayout(0, 0));
JLabel label = new JLabel("\u7B2C\u4E00\u5C42");
panel.add(label, BorderLayout.NORTH);
label.setFont(new Font("宋体", Font.PLAIN, 16));
JPanel panel_2 = new JPanel();
layeredPane.setLayer(panel_2, 90);
panel_2.setBackground(new Color(102, 51, 204));
panel_2.setBounds(244, 242, 202, 131);
layeredPane.add(panel_2);
JPanel panel_3 = new JPanel();
panel_3.setBackground(new Color(255, 102, 0));
panel_3.setBounds(395, 124, 158, 199);
layeredPane.add(panel_3);
JPanel panel_4 = new JPanel();
panel_4.setBackground(new Color(0, 51, 0));
panel_4.setBounds(485, 10, 158, 203);
layeredPane.add(panel_4);
JPanel panel_1 = new JPanel();
panel_1.setBounds(137, 153, 145, 165);
layeredPane.add(panel_1);
layeredPane.setLayer(panel_1, 3);
panel_1.setBackground(Color.GREEN);
panel_1.setForeground(Color.GREEN);
}
}
3、实现步骤:
4、JLayeredPane介绍:
层级面板JLayeredPane为容器添加了深度,允许组件在需要时互相重叠。
JLayeredPane将深度范围按 层 划分,在同一层内又对组件按位置进一步划分,将组件放入容器时需要指定组件所在的层,以及组件在该层内的 位置(position/index)。
层的编号越大越显示在前面;同层内位置编号越大越靠近底部(位置编号取值范围: [-1, n - 1],n 表示层内组件数量,其中 -1 表示最底,0 表示最顶)。
通过 setLayer(Component c, int layer) 可设置组件所在的层数。
同一层内的组件,可通过调用 moveToFront(Component)、moveToBack(Component) 和 setPosition(int) 调整层内的位置。