(1)利用CardLayout布局管理器完成界面设计,添加三个命令按钮Jbutton,初始显示“第一张卡片”,当单击按钮时显示下一卡片,如下图所示。java
时间: 2024-03-01 11:50:23 浏览: 105
好的,我可以回答你的问题并提供示例代码。
首先,让我们来了解一下CardLayout布局管理器。
CardLayout布局管理器是一种面板切换的布局管理器,它可以在同一容器中放置多个面板,但只有一个面板是可见的。我们可以通过在不同面板之间切换来显示不同的内容。
以下是实现上述要求的示例代码:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CardLayoutDemo implements ActionListener {
JPanel cardPanel; // 卡片面板
JLabel label1, label2, label3; // 标签
JButton button1, button2, button3; // 按钮
CardLayout cardLayout; // 卡片布局管理器
public CardLayoutDemo() {
// 创建标签和按钮
label1 = new JLabel("第一张卡片", JLabel.CENTER);
label2 = new JLabel("第二张卡片", JLabel.CENTER);
label3 = new JLabel("第三张卡片", JLabel.CENTER);
button1 = new JButton("下一张");
button2 = new JButton("下一张");
button3 = new JButton("下一张");
// 添加按钮监听器
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
// 创建卡片面板并设置布局管理器
cardPanel = new JPanel();
cardLayout = new CardLayout();
cardPanel.setLayout(cardLayout);
// 添加标签到卡片面板
cardPanel.add(label1, "card1");
cardPanel.add(label2, "card2");
cardPanel.add(label3, "card3");
// 添加按钮到主面板
JPanel buttonPanel = new JPanel();
buttonPanel.add(button1);
buttonPanel.add(button2);
buttonPanel.add(button3);
// 添加卡片面板和按钮面板到主面板
JFrame frame = new JFrame("CardLayout Demo");
frame.getContentPane().add(cardPanel, BorderLayout.CENTER);
frame.getContentPane().add(buttonPanel, BorderLayout.SOUTH);
// 设置窗口属性
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
// 切换到下一张卡片
cardLayout.next(cardPanel);
}
public static void main(String[] args) {
new CardLayoutDemo();
}
}
```
运行此代码将显示一个窗口,其中包含一个标签和三个按钮。初始显示第一张卡片,单击任意按钮将显示下一张卡片。
阅读全文