Java将按钮1 和按钮2分别放入JLayeredPane的不同层中,用户单击任意按钮后,该 按钮将显示在上一层
时间: 2024-01-22 22:17:36 浏览: 33
可以通过以下步骤实现:
1. 创建两个按钮对象 button1 和 button2,并设置它们的位置和大小。
2. 创建一个 JLayeredPane 对象 layeredPane,并将它添加到 JFrame 窗口中。
3. 将按钮 button1 和 button2 添加到 JLayeredPane 中不同的层中,可以使用 setLayer() 方法指定层级,例如:
```
layeredPane.add(button1, new Integer(0)); // 添加到第0层
layeredPane.add(button2, new Integer(1)); // 添加到第1层
```
4. 为按钮添加 ActionListener,当用户单击按钮时,使用 setLayer() 方法将该按钮移到上一层,例如:
```
button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int layer = layeredPane.getLayer(button1);
layeredPane.setLayer(button1, layer+1); // 移到上一层
}
});
```
同理,可以为按钮 button2 添加相同的 ActionListener。
完整代码示例:
```
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Test {
public static void main(String[] args) {
JFrame frame = new JFrame("Test");
frame.setSize(400, 400);
JButton button1 = new JButton("Button1");
button1.setBounds(50, 50, 100, 30);
JButton button2 = new JButton("Button2");
button2.setBounds(150, 150, 100, 30);
JLayeredPane layeredPane = new JLayeredPane();
layeredPane.setBounds(0, 0, 400, 400);
layeredPane.add(button1, new Integer(0)); // 添加到第0层
layeredPane.add(button2, new Integer(1)); // 添加到第1层
button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int layer = layeredPane.getLayer(button1);
layeredPane.setLayer(button1, layer+1); // 移到上一层
}
});
button2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int layer = layeredPane.getLayer(button2);
layeredPane.setLayer(button2, layer+1); // 移到上一层
}
});
frame.add(layeredPane);
frame.setVisible(true);
}
}
```