一、设计流程

创建一个主窗口 jf

创建两个主面版 mainJP1, mainJP2

创建三个子面版 subJP1, subJP2, subJP3

创建三个标签,赋值 第1个页面、第2个页面、第3个页面

创建两个按钮 btn1, btn2,赋值 上一页、下一页

设置主窗口的布局为GridLayout(2,1)

设置主面版mainJP1的布局为Cardlayout

设置主面版mainJP2的布局为FlowLayout

分别为3个子面版设置不同的背景色

将3个标签分别加入到3个子面版中

将3个子面版加入到主面版 mainJP1 中

将2个按钮加入到主面版 mainJP2 中

将两个主面版加入到主窗口中

处理2个按钮的事件

将主窗口设置为可见

设置主窗口的关闭方式

二、源码

package javaapplication1;

import java.awt.CardLayout;

import java.awt.Color;

import java.awt.FlowLayout;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

/**

*

* @author thinker

*/

public class buJu {

/**

*

* @param args

*/

public static void main(String[] args) {

JFrame jf = new JFrame();

JPanel mainjp1 = new JPanel();

JPanel mainjp2 = new JPanel();

JPanel subjp1 = new JPanel();

JPanel subjp2 = new JPanel();

JPanel subjp3 = new JPanel();

JLabel lb1 = new JLabel("第一个页面");

JLabel lb2 = new JLabel("第二个页面");

JLabel lb3 = new JLabel("第三个页面");

JButton btn1 = new JButton("上一页");

JButton btn2 = new JButton("下一页");

jf.setLayout(new GridLayout(2, 1));

mainjp1.setLayout(new CardLayout());

mainjp2.setLayout(new FlowLayout());

subjp1.setBackground(Color.orange);

subjp2.setBackground(Color.pink);

subjp3.setBackground(Color.lightGray);

subjp1.add(lb1, "1");

subjp2.add(lb2, "2");

subjp3.add(lb3, "3");

mainjp1.add(subjp1);

mainjp1.add(subjp2);

mainjp1.add(subjp3);

mainjp2.add(btn1);

mainjp2.add(btn2);

jf.add(mainjp1);

jf.add(mainjp2);

btn1.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

((CardLayout)mainjp1.getLayout()).previous(mainjp1);

}

});

btn2.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

((CardLayout)mainjp1.getLayout()).next(mainjp1);

}

});

jf.setVisible(true);

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

三、效果图

四、参考资料

1. java中CardLayout的使用方法

http://wwwblogs/UUUP/p/3800843.html

2. 范明翔,陈锦辉 - 《深入浅出 java swing 程序设计》第三章节

更多推荐

java getlayout_Java CardLayout 布局示例