用java实现以下功能:(1)利用CardLayout布局管理器完成界面设计,添加三个命令按钮Jbutton,初始显示“第一张卡片”,当单击界面时显示下一卡片,如下图所示。
时间: 2024-03-01 11:52:10 浏览: 20
以下是Java实现的代码:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CardLayoutDemo extends JFrame implements ActionListener {
private JPanel cards;
private JButton btn1, btn2, btn3;
public CardLayoutDemo() {
setTitle("CardLayout Demo");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 200);
// 创建卡片布局管理器
cards = new JPanel(new CardLayout());
// 创建三个面板
JPanel panel1 = new JPanel();
panel1.add(new JLabel("第一张卡片"));
JPanel panel2 = new JPanel();
panel2.add(new JLabel("第二张卡片"));
JPanel panel3 = new JPanel();
panel3.add(new JLabel("第三张卡片"));
// 将三个面板添加到卡片布局管理器中
cards.add(panel1, "Card 1");
cards.add(panel2, "Card 2");
cards.add(panel3, "Card 3");
// 创建三个按钮
btn1 = new JButton("第一张卡片");
btn1.addActionListener(this);
btn2 = new JButton("第二张卡片");
btn2.addActionListener(this);
btn3 = new JButton("第三张卡片");
btn3.addActionListener(this);
// 将按钮添加到容器中
JPanel btnPanel = new JPanel();
btnPanel.add(btn1);
btnPanel.add(btn2);
btnPanel.add(btn3);
// 将卡片布局管理器和按钮容器添加到窗口中
getContentPane().add(cards, BorderLayout.CENTER);
getContentPane().add(btnPanel, BorderLayout.SOUTH);
setVisible(true);
}
// 实现按钮的事件监听器
public void actionPerformed(ActionEvent e) {
CardLayout cl = (CardLayout) (cards.getLayout());
if (e.getSource() == btn1) {
cl.show(cards, "Card 1");
} else if (e.getSource() == btn2) {
cl.show(cards, "Card 2");
} else if (e.getSource() == btn3) {
cl.show(cards, "Card 3");
}
}
public static void main(String[] args) {
new CardLayoutDemo();
}
}
```
运行上述代码,即可看到三个按钮和三个面板,单击不同的按钮可以切换不同的面板。