功能描述: 本程序将当前JFrame 的 Center 区域设置为 CardLayout 布局, 然后每张卡片中添 加一个按钮, 在South 区域添加了4 个按钮, 分别 控制第一张、 上一张、 下一张、 最后一张卡片的按钮。
时间: 2024-02-12 12:07:32 浏览: 29
以下是一个 Java Swing 的示例代码,实现了将当前 JFrame 的 Center 区域设置为 CardLayout 布局,然后添加了多个卡片和按钮,可以通过 South 区域的按钮来控制显示不同的卡片:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CardLayoutExample extends JFrame implements ActionListener {
private JPanel cardPanel;
private JButton firstBtn, prevBtn, nextBtn, lastBtn;
private CardLayout cardLayout;
public CardLayoutExample() {
super("CardLayout Example");
// 创建卡片面板和卡片
cardLayout = new CardLayout();
cardPanel = new JPanel(cardLayout);
for (int i = 1; i <= 5; i++) {
JPanel card = new JPanel(new FlowLayout());
card.add(new JLabel("Card " + i));
card.add(new JButton("Button " + i));
cardPanel.add(card, "card" + i);
}
// 创建按钮面板和按钮
JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
firstBtn = new JButton("First");
prevBtn = new JButton("Previous");
nextBtn = new JButton("Next");
lastBtn = new JButton("Last");
firstBtn.addActionListener(this);
prevBtn.addActionListener(this);
nextBtn.addActionListener(this);
lastBtn.addActionListener(this);
buttonPanel.add(firstBtn);
buttonPanel.add(prevBtn);
buttonPanel.add(nextBtn);
buttonPanel.add(lastBtn);
// 将卡片面板和按钮面板添加到窗口中
add(cardPanel, BorderLayout.CENTER);
add(buttonPanel, BorderLayout.SOUTH);
// 设置窗口属性
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 300);
setLocationRelativeTo(null);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == firstBtn) {
cardLayout.first(cardPanel);
} else if (e.getSource() == prevBtn) {
cardLayout.previous(cardPanel);
} else if (e.getSource() == nextBtn) {
cardLayout.next(cardPanel);
} else if (e.getSource() == lastBtn) {
cardLayout.last(cardPanel);
}
}
public static void main(String[] args) {
new CardLayoutExample();
}
}
```
在上面的代码中,我们创建了一个 JFrame 窗口,将其 Center 区域设置为 CardLayout 布局,然后添加了多个卡片和按钮。通过实现 ActionListener 接口,我们可以监听按钮的点击事件并在事件处理方法中调用相应的 CardLayout 方法来实现显示不同卡片的功能。