CardLayout 应 用 示 例: 功能描述: 本程序将当前JFrame 的 Center 区域设置为 CardLayout 布局, 然后每张卡片中添 加一个按钮, 在South 区域添加了4 个按钮, 分别 控制第一张、 上一张、 下一张、 最后一张卡片的按钮。
时间: 2024-02-22 20:55:56 浏览: 19
好的,下面是 CardLayout 的示例代码:
```java
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class CardLayoutDemo extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private Container container;
private CardLayout cardLayout;
private JPanel cardPanel;
private JButton btnFirst, btnPrev, btnNext, btnLast;
public CardLayoutDemo() {
setTitle("CardLayout Demo");
setSize(500, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
init();
setVisible(true);
}
private void init() {
container = getContentPane();
cardLayout = new CardLayout();
cardPanel = new JPanel(cardLayout);
container.add(cardPanel, BorderLayout.CENTER);
for (int i = 1; i <= 5; i++) {
JButton btn = new JButton("Card " + i);
cardPanel.add(btn, "card" + i);
}
JPanel btnPanel = new JPanel();
btnFirst = new JButton("First");
btnPrev = new JButton("Previous");
btnNext = new JButton("Next");
btnLast = new JButton("Last");
btnFirst.addActionListener(this);
btnPrev.addActionListener(this);
btnNext.addActionListener(this);
btnLast.addActionListener(this);
btnPanel.add(btnFirst);
btnPanel.add(btnPrev);
btnPanel.add(btnNext);
btnPanel.add(btnLast);
container.add(btnPanel, BorderLayout.SOUTH);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnFirst) {
cardLayout.first(cardPanel);
} else if (e.getSource() == btnPrev) {
cardLayout.previous(cardPanel);
} else if (e.getSource() == btnNext) {
cardLayout.next(cardPanel);
} else if (e.getSource() == btnLast) {
cardLayout.last(cardPanel);
}
}
public static void main(String[] args) {
new CardLayoutDemo();
}
}
```
这个示例程序创建了一个 JFrame,将其 Center 区域设置为 CardLayout,并在其中添加了 5 个 JButton,每个按钮代表一个卡片。程序还在 JFrame 的 South 区域添加了 4 个按钮,分别控制卡片的切换。当用户点击这些按钮时,程序会调用 CardLayout 的 first、previous、next、last 方法来切换卡片。