该程序演示CardLayout布局管理器的使用
时间: 2024-03-06 11:48:55 浏览: 65
好的,以下是一个演示CardLayout布局管理器使用的示例程序:
```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CardLayoutExample extends JFrame implements ActionListener {
// CardLayout对象
private CardLayout cardLayout;
// 面板1
private JPanel panel1;
// 面板2
private JPanel panel2;
// 面板3
private JPanel panel3;
// 构造函数
public CardLayoutExample() {
// 设置窗口标题
setTitle("CardLayout Example");
// 创建CardLayout对象
cardLayout = new CardLayout();
// 设置布局管理器
setLayout(cardLayout);
// 创建面板1
panel1 = new JPanel();
panel1.setBackground(Color.RED);
panel1.add(new JLabel("This is panel 1"));
// 创建面板2
panel2 = new JPanel();
panel2.setBackground(Color.GREEN);
panel2.add(new JLabel("This is panel 2"));
// 创建面板3
panel3 = new JPanel();
panel3.setBackground(Color.BLUE);
panel3.add(new JLabel("This is panel 3"));
// 添加面板到窗口中
add(panel1, "panel1");
add(panel2, "panel2");
add(panel3, "panel3");
// 创建按钮面板
JPanel buttonPanel = new JPanel();
// 创建按钮
JButton button1 = new JButton("Panel 1");
JButton button2 = new JButton("Panel 2");
JButton button3 = new JButton("Panel 3");
// 添加按钮到按钮面板中
buttonPanel.add(button1);
buttonPanel.add(button2);
buttonPanel.add(button3);
// 添加按钮面板到窗口中
add(buttonPanel, BorderLayout.SOUTH);
// 为按钮添加事件监听器
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
// 设置窗口大小并使其可见
setSize(300, 200);
setVisible(true);
}
// 按钮点击事件处理函数
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("Panel 1")) {
cardLayout.show(getContentPane(), "panel1");
} else if (e.getActionCommand().equals("Panel 2")) {
cardLayout.show(getContentPane(), "panel2");
} else if (e.getActionCommand().equals("Panel 3")) {
cardLayout.show(getContentPane(), "panel3");
}
}
public static void main(String[] args) {
new CardLayoutExample();
}
}
```
在这个例子中,我们创建了三个面板,每个面板都有不同的背景颜色和标签。我们还创建了一个按钮面板,其中包含三个按钮,用于切换面板。在按钮的动作事件处理函数中,我们使用CardLayout对象的show()方法来切换面板。最后,我们设置窗口的大小并使其可见。
阅读全文