import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class CardDeck extends JFrame implements ActionListener {
private static final long serialVersionUID = -2827714684185695534L;
private CardLayout cardManager;
private JPanel deck;
private JButton controls[];
private String names[] = { "First card", "Next card", "Previous card",
"Last card" };
public CardDeck() {
super("CardLayout ");
Container c = getContentPane();
// create the JPanel with CardLayout
deck = new JPanel();
cardManager = new CardLayout();
deck.setLayout(cardManager);
// set up card1 and add it to JPanel deck
JLabel label1 = new JLabel("card one", SwingConstants.CENTER);
JPanel card1 = new JPanel();
card1.add(label1);
deck.add(card1, label1.getText()); // add card to deck
// set up card2 and add it to JPanel deck
JLabel label2 = new JLabel("card two", SwingConstants.CENTER);
JPanel card2 = new JPanel();
card2.setBackground(Color.yellow);
card2.add(label2);
deck.add(card2, label2.getText()); // add card to deck
// set up card3 and add it to JPanel deck
JLabel label3 = new JLabel("card three");
JPanel card3 = new JPanel();
card3.setLayout(new BorderLayout());
card3.add(new JButton("North"), BorderLayout.NORTH);
card3.add(new JButton("West"), BorderLayout.WEST);
card3.add(new JButton("East"), BorderLayout.EAST);
card3.add(new JButton("South"), BorderLayout.SOUTH);
card3.add(label3, BorderLayout.CENTER);
deck.add(card3, label3.getText()); // add card to deck
// create and layout buttons that will control deck
JPanel buttons = new JPanel();
buttons.setLayout(new GridLayout(2, 2));
controls = new JButton[names.length];
for (int i = 0; i < controls.length; i++) {
controls[i] = new JButton(names[i]);
controls[i].addActionListener(this);
buttons.add(controls[i]);
}
// add JPanel deck and JPanel buttons to the applet
c.add(buttons, BorderLayout.WEST);
c.add(deck, BorderLayout.EAST);
setSize(450, 200);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == controls[0])
cardManager.first(deck); // show first card
else if (e.getSource() == controls[1])
cardManager.next(deck); // show next card
else if (e.getSource() == controls[2])
cardManager.previous(deck); // show previous card
else if (e.getSource() == controls[3])
cardManager.last(deck); // show last card
}
public static void main(String args[]) {
CardDeck cardDeckDemo = new CardDeck();
cardDeckDemo.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
分享到:
相关推荐
Java Swing CardLayout 卡片布局的实现示例 Java Swing CardLayout 卡片布局是 ...Java Swing CardLayout 卡片布局是一个功能强大且灵活的布局管理器,它可以帮助我们快速实现卡片式的界面,并提供了灵活的布局方式。
在本主题中,我们将深入探讨QT5中的卡片布局(CardLayout),特别是基于QLayout的CardStackLayout,以及如何实现动画效果。 卡片布局(CardLayout)的概念来源于用户界面设计,其中各个界面元素如同卡片一样堆叠在...
在Java Swing库中,`CardLayout`是一种布局管理器,用于在单一容器内管理多个组件,就像一副卡片一样,每次只能展示其中一张。这个布局管理器特别适合于创建选项面板或者切换视图的场景,例如在GUI应用中,用户可以...
本文将通过一个简单的Java卡片布局示例来介绍如何使用`CardLayout`以及其基本用法。这个例子将会创建两个面板,每个面板上都有一个图像标签,用户可以通过点击按钮来切换显示不同的面板。 #### 二、核心代码解析 `...
在GUI设计中,`CardLayout`是一种特殊的布局管理器,它允许在一个容器中显示一组组件,每次只能看到一个,就像一副卡片,用户可以翻动卡片查看不同的内容。本实例将深入探讨如何在NetBeans中使用`CardLayout`来创建...
- **显示特定组件**:最后,通过调用CardLayout的方法(如`first()`, `last()`, `next()`, 或 `previous()`)来决定要显示哪个组件。 以下是一个简单的示例,展示了如何使用CardLayout创建一个有三个标签页的程序...
卡片布局,支持水平、垂直滚动。 亲! 喜欢的话请到github上给个star吧 https://github.com/Pr-Chen/CardLayout-Swift 还有OC版本哦,请访问:https://github.com/Pr-Chen/CardLayout-OC 用法简单: let ...
在Java Swing库中,`CardLayout`是一种布局管理器,用于组织组件(如JPanel)中的其他组件。这个布局管理器允许你在一个容器内切换不同的组件,就像一副卡片一样,一次只能显示一张卡片,而其他的卡片则被隐藏。在本...
Swing 卡片布局 在 Java 中,Swing 库提供了多种布局管理器,其中 CardLayout 是一种特殊的布局管理器,它可以在容器中显示多个组件,但每次只显示一个组件。下面我们将通过一个示例程序来了解 CardLayout 的使用。...
此外,还有`first(Container parent)`, `last(Container parent)`, `next(Container parent)`, 和 `previous(Container parent)` 方法,这些方法用于在布局中按照顺序切换组件。 在描述中提到的“上一步、下一步的...
首先,让我们详细探讨一下卡片布局(CardLayout)。卡片布局是Java Swing中的一个布局管理器,它允许在一个容器中管理多个组件,就像一副卡片堆叠在一起一样。每个组件都对应一张卡片,用户可以通过向前或向后翻动来...
例如,一个应用程序可能使用BorderLayOut作为顶层容器的布局,将菜单栏和工具栏放在边缘,然后在中心使用CardLayOut来切换不同的功能面板,而每个面板内部再使用GridLayOut或其他布局来组织其组件。这样的设计可以...
本文将对Java编程使用卡片布局管理器进行详细的介绍,并提供了一个基于swing组件的实例来演示卡片布局管理器的使用。 一、卡片布局管理器的概念 卡片布局管理器是一个Java中的布局管理器,用于管理多个面板之间的...
本案例通过将卡片布局(CardLayout)与拆分窗口(JSplitPane)结合使用,实现了一个动态切换界面的效果。左侧为操作区域,放置了按钮;右侧为展示区域,采用卡片布局来管理多个界面的显示与隐藏。 #### 技术栈 - Java ...
### 卡片布局设计实例详解 #### 一、概述 在Java Swing中,`CardLayout`是一种非常实用的布局管理器,它允许在一个容器中放置多个面板(或组件),并且只显示其中一个,其余的面板会被隐藏起来。通过这种方式,用户...
在本实例中,我们将创建一个简单的卡片布局,包含四个按钮和四个面板,每个面板中显示一首诗歌。用户可以通过点击按钮来切换显示的面板。 首先,我们需要引入相关的包,包括 `java.awt.BorderLayout`、`java.awt....
Java卡片布局管理器解释及实例 Java卡片布局管理器是Java语言中的一种布局管理器,用于管理容器中的组件。...通过使用CardLayout类,可以轻松地实现卡片布局管理器,并提供了灵活的布局管理方式。
NULL 博文链接:https://alog2012.iteye.com/blog/1613294
3. **卡片布局(CardLayout)** 卡片布局允许在一个区域中显示多个组件,但一次只能显示一个。就像卡片堆叠一样,你可以通过调用`next()`或`previous()`方法在不同的组件之间切换。这种布局适用于创建选项卡式界面...
描述中提到的"卡片布局的基本设计!包含实验的4个程序",意味着我们有四个示例程序,它们演示了`CardLayout`的用法。这四个程序可能包括了添加卡片、切换卡片以及在特定条件下显示特定卡片等功能的实现。同时,"还有...