在JFrame 窗体下部添加5个按钮,分别显示为“上一张”“下一张”“1”“2”“3”,控制窗体上部显示的红色、蓝色、绿色卡片,使用 Cardlayout 布局管理器实现这些效果
时间: 2023-10-11 18:11:37 浏览: 118
好的,这是一个使用 CardLayout 布局管理器实现卡片切换的例子,具体实现可以参考以下代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class CardLayoutDemo extends JFrame implements ActionListener {
private JPanel cardPanel;
private CardLayout cardLayout;
public CardLayoutDemo() {
super("CardLayout Demo");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 初始化卡片面板和布局管理器
cardLayout = new CardLayout();
cardPanel = new JPanel(cardLayout);
// 创建三个卡片面板
JPanel redPanel = new JPanel();
redPanel.setBackground(Color.RED);
JPanel bluePanel = new JPanel();
bluePanel.setBackground(Color.BLUE);
JPanel greenPanel = new JPanel();
greenPanel.setBackground(Color.GREEN);
// 将三个卡片面板添加到卡片面板中
cardPanel.add(redPanel, "red");
cardPanel.add(bluePanel, "blue");
cardPanel.add(greenPanel, "green");
// 创建控制按钮
JButton prevButton = new JButton("上一张");
prevButton.setActionCommand("prev");
prevButton.addActionListener(this);
JButton nextButton = new JButton("下一张");
nextButton.setActionCommand("next");
nextButton.addActionListener(this);
JButton button1 = new JButton("1");
button1.setActionCommand("red");
button1.addActionListener(this);
JButton button2 = new JButton("2");
button2.setActionCommand("blue");
button2.addActionListener(this);
JButton button3 = new JButton("3");
button3.setActionCommand("green");
button3.addActionListener(this);
// 将控制按钮添加到窗体下部
JPanel controlPanel = new JPanel(new GridLayout(1, 5));
controlPanel.add(prevButton);
controlPanel.add(nextButton);
controlPanel.add(button1);
controlPanel.add(button2);
controlPanel.add(button3);
add(controlPanel, BorderLayout.SOUTH);
// 将卡片面板添加到窗体中部
add(cardPanel, BorderLayout.CENTER);
setSize(300, 200);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if ("prev".equals(e.getActionCommand())) {
cardLayout.previous(cardPanel);
} else if ("next".equals(e.getActionCommand())) {
cardLayout.next(cardPanel);
} else {
cardLayout.show(cardPanel, e.getActionCommand());
}
}
public static void main(String[] args) {
new CardLayoutDemo();
}
}
```
在这个例子中,我们使用了 JPanel 和 CardLayout 来实现卡片效果。首先,我们创建了三个 JPanel 对象,并将它们分别设置为红色、蓝色和绿色。然后,我们将这三个 JPanel 对象添加到一个 JPanel 中,并使用 CardLayout 布局管理器来管理这个 JPanel 中的组件。接着,我们在窗体下部添加了五个 JButton 对象,分别是“上一张”、“下一张”、“1”、“2”和“3”。当用户点击这些按钮时,我们会调用 actionPerformed 方法来处理事件。在 actionPerformed 方法中,我们使用 CardLayout 中的方法来切换卡片的显示。当用户点击“上一张”按钮时,我们调用 previous 方法来显示上一个卡片;当用户点击“下一张”按钮时,我们调用 next 方法来显示下一个卡片;当用户点击“1”、“2”或“3”按钮时,我们调用 show 方法来显示对应的卡片。最后,我们将这个 JPanel 对象添加到窗体的中部,将控制按钮添加到窗体的下部,并设置窗体的大小和可见性。
阅读全文