/**
* 卡片布局管理器
*
* @time 9:49:57 AM
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
public class Test_CardLayuot extends Frame {
private static final long serialVersionUID = 1L;
// 命令面板
Panel pnlCommandArea = new Panel();
// 显示面板
Panel pnlDisplayArea = new Panel();
// 显示面板布局
CardLayout cardLayout = new CardLayout();
//
Button btnFirst = new Button("第一个");
Button btnPrevious = new Button("上一个");
Button btnNext = new Button("下一个");
Button btnLast = new Button("最后一个");
/**
* 构造器
*/
@SuppressWarnings("unused")
public Test_CardLayuot() {
btnFirst.setBackground(Color.white);
btnPrevious.setBackground(Color.white);
btnNext.setBackground(Color.white);
btnLast.setBackground(Color.white);
this.setLayout(new BorderLayout());
// 添加两个布局
this.add(pnlCommandArea, BorderLayout.NORTH);
this.add(pnlDisplayArea, BorderLayout.CENTER);
// 显示面板添加布局
pnlDisplayArea.setLayout(cardLayout);
// 四个显示面板
Panel firstPanel = new Panel();
// 背景色
firstPanel.setBackground(Color.yellow);
// 前景色
firstPanel.setForeground(Color.blue);
pnlDisplayArea.add("first", firstPanel);
firstPanel.add(new Label("这是第一张卡片"));
Panel secondPanel = new Panel();
secondPanel.setBackground(Color.pink);
secondPanel.setForeground(Color.blue);
pnlDisplayArea.add("first", secondPanel);
secondPanel.add(new Label("这是第二张卡片"));
Panel thirdPanel = new Panel();
thirdPanel.setBackground(Color.orange);
thirdPanel.setForeground(Color.blue);
pnlDisplayArea.add("first", thirdPanel);
thirdPanel.add(new Label("这是第三张卡片"));
Panel fourthPanel = new Panel();
fourthPanel.setBackground(Color.green);
fourthPanel.setForeground(Color.blue);
pnlDisplayArea.add("first", fourthPanel);
fourthPanel.add(new Label("这是第四张卡片"));
// 按钮添加监听
btnFirst.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
processAction(e);
}
});
btnPrevious.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
processAction(e);
}
});
btnNext.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
processAction(e);
}
});
btnLast.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
processAction(e);
}
});
// 按钮添加以面板
pnlCommandArea.add(btnFirst);
pnlCommandArea.add(btnPrevious);
pnlCommandArea.add(btnNext);
pnlCommandArea.add(btnLast);
}
@SuppressWarnings("deprecation")
public static void main(String[] args) {
Test_CardLayuot cardLayuot = new Test_CardLayuot();
cardLayuot.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
// 自适应控件大小
cardLayuot.pack();
cardLayuot.show();
}
/**
* 默认大小
*/
public Dimension getPreferredSize() {
return new Dimension(300, 300);
}
/**
* 单击后执行方法
*/
private void processAction(ActionEvent e) {
Button btnEvent = (Button) e.getSource();
if (btnEvent.equals(btnFirst)) {
cardLayout.first(pnlDisplayArea);
} else if (btnEvent.equals(btnLast)) {
cardLayout.last(pnlDisplayArea);
} else if (btnEvent.equals(btnPrevious)) {
cardLayout.previous(pnlDisplayArea);
} else if (btnEvent.equals(btnNext)) {
cardLayout.next(pnlDisplayArea);
}
}
}
分享到:
相关推荐
Java Swing CardLayout 卡片布局是 Java 中的一种布局管理器,它将容器中的每个组件看作一张卡片,一次只能看到一张卡片,容器则充当卡片的堆栈,默认显示第一张卡片。CardLayout 构造方法可以创建一个间距大小为 0 ...
CardLayout 布局管理器将加入到容顺中的组件视为卡片栈,把每个组件放置在一个单独的卡片上,而每次只能看见一张卡片。 3. FlowLayout 布局管理器 FlowLayout 布局管理器将组件从左到右、从上到下放置。 4. ...
2. **CardLayout**:这种布局管理器将容器中的组件视为一组卡片,每个组件位于一个独立的卡片上。任何时候,只有其中一个卡片可见。CardLayout通常用于创建选项卡式或分页式的用户界面。 3. **FlowLayout**:这是一...
Java编程使用卡片布局管理器示例【基于swing组件】 Java编程使用卡片布局管理器是一种常见的用户界面设计模式,利用卡片布局管理器可以实现多个面板之间的切换,提供了灵活的界面设计方式。在Java编程中,使用卡片...
在QT5中,布局管理器(QLayout)是构建用户界面的重要工具,它负责自动调整控件的位置和大小以适应窗口的变化。在本主题中,我们将深入探讨QT5中的卡片布局(CardLayout),特别是基于QLayout的CardStackLayout,...
在Java Swing库中,`CardLayout`是一种布局管理器,用于在单一容器内管理多个组件,就像一副卡片一样,每次只能展示其中一张。这个布局管理器特别适合于创建选项面板或者切换视图的场景,例如在GUI应用中,用户可以...
在 Java 中,Swing 库提供了多种布局管理器,其中 CardLayout 是一种特殊的布局管理器,它可以在容器中显示多个组件,但每次只显示一个组件。下面我们将通过一个示例程序来了解 CardLayout 的使用。 首先,我们需要...
CardLayOut是更为复杂的布局管理器,它将组件排列成“卡片”形式。你可以想象这些卡片堆叠在一起,每次只显示一张卡片。通过更改显示的卡片,可以在同一空间内切换不同的组件或视图。这在实现选项卡式界面或者动态...
卡片布局管理器(`CardLayout`)适用于需要在多个视图之间切换的场景。它允许在一个容器内显示多个子面板中的任意一个,这些子面板通常具有相同的大小。这种布局方式非常适合于实现选项卡式界面或者简单的幻灯片展示...
GridBagLayout是Swing中最灵活也是最复杂的布局管理器,可以对控件在容器中的位置进行比较灵活的调整。 5. CardLayout 卡片式布局 CardLayout帮助用户处理两个或更多的成员共享同一显示空间,它把容器分成许多层,...
首先,Java Swing 提供了几种内置的布局管理器,包括 FlowLayout、BorderLayout、GridLayout、CardLayout 和 GroupLayout。每种布局管理器都有其特定的用途和规则: 1. **FlowLayout**:这是最简单的布局管理器,...
CardLayout 是一种基于卡片的布局管理方式,允许开发者在同一个容器中显示多个面板,并可以在这些面板之间进行切换。这种布局方式非常适合实现wizard 界面、tab 界面等。 在本实例中,我们将创建一个简单的卡片布局...
在这个"一个简单布局"的项目中,开发者创建了一个自定义的 Swing 布局,尽管它可能并不完美,但仍然可以作为学习和理解布局管理器工作原理的基础。 在 Swing 中,有多种内置的布局管理器,如 FlowLayout、...
在Java Swing中,`CardLayout`是一种非常实用且灵活的布局管理器,它允许用户在一个容器内显示多个组件(通常为面板),并可以在这些面板之间进行切换,就像翻动卡片一样。这种布局常用于创建多页面的界面或模拟选项...
在Java GUI编程中,布局管理器是至关重要的组成部分,它负责控制组件在窗口中的位置和大小。本资源提供了五种常见的布局管理器的经典例子,帮助开发者更好地理解和运用这些管理器。下面将详细介绍这五种布局管理器...
Java中的布局管理器可以分为七种:流布局管理器(FlowLayout)、边界布局管理器(BorderLayout)、网格布局管理器(GridLayout)、卡片布局管理器(CardLayout)、盒式布局管理器(BoxLayout)、网格袋布局管理器...
Java卡片布局管理器解释及实例 Java卡片布局管理器是Java语言中的一种布局管理器,用于管理容器中的组件。...通过使用CardLayout类,可以轻松地实现卡片布局管理器,并提供了灵活的布局管理方式。
在GUI设计中,`CardLayout`是一种特殊的布局管理器,它允许在一个容器中显示一组组件,每次只能看到一个,就像一副卡片,用户可以翻动卡片查看不同的内容。本实例将深入探讨如何在NetBeans中使用`CardLayout`来创建...
`CardLayout`是Java中的一种特殊布局管理器,主要用于处理多面板的情况,每个面板可以视为一个“卡片”,用户可以在这些卡片之间切换,就像在一副牌中翻动不同卡片一样。 标题中的"Java的布局管理器"主要关注Java ...