CardLayout 简单实现Demo

package cn.ljz.test;

import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.border.Border;

/**
* @theme 牌式布局实现
* @author lijingzan
* @time 2010/11/9
* @version 1.0
*
*/
public class TestCardLayout {
private Page page = null;
private static int currentCount = 1;// 计算张数
private JFrame jframe;
private CardLayout cardLayout;// 牌式布局
@SuppressWarnings("unused")
private JPanel bottomJpanel, topJpanel;
@SuppressWarnings("unused")
private JButton jb_1, jb_2, jb_3, jb_4, jb_5, jb_6, jb_first, jb_last,
jb_next, jb_pre;
private JTextArea jtextArea;

public TestCardLayout() {
page = new Page(6);
cardLayout = new CardLayout();
jframe = new JFrame();
bottomJpanel = new JPanel();
topJpanel = new JPanel();
jtextArea = new JTextArea();
jb_1 = new JButton("按钮一");
jb_2 = new JButton("按钮二");
jb_3 = new JButton("按钮三");
jb_4 = new JButton("按钮四");
jb_5 = new JButton("按钮五");
jb_6 = new JButton("按钮六");
jb_first = new JButton("第一张 ");
jb_last = new JButton("最后一张");
jb_next = new JButton("下一张");
jb_pre = new JButton("前一张");
init();

}

public void init() {
topJpanelInit();
bottomJpanelInit();
Container container = jframe.getContentPane();
container.add(bottomJpanel, BorderLayout.CENTER);// 加入下面的按钮
container.add(topJpanel, BorderLayout.NORTH);
eventListener();
}

public void bottomJpanelInit() {
bottomJpanel.setLayout(new FlowLayout());
bottomJpanel.add(jb_first);
bottomJpanel.add(jb_next);
bottomJpanel.add(jb_pre);
bottomJpanel.add(jb_last);
}

public void topJpanelInit() {
topJpanel.setLayout(cardLayout);
topJpanel.add(jb_1, "按钮一");
topJpanel.add(jb_2, "按钮二");
topJpanel.add(jb_3, "按钮三");
topJpanel.add(jb_4, "按钮四");
topJpanel.add(jb_5, "按钮五");
topJpanel.add(jb_6, "按钮六");
}

public void showMe() {
jframe.setSize(200, 200);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jframe.setVisible(true);
}

//加入事件监听
public void eventListener() {
jb_first.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
currentCount = 1;
cardLayout.show(topJpanel, buttonText(page.first()));
}

});
jb_last.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
currentCount = page.getTotalCount();
cardLayout.show(topJpanel, buttonText(page.last()));
}

});
jb_pre.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
currentCount = currentCount - 1;
if(page.isFirst(currentCount)){
currentCount = 1;
}else{
}
cardLayout.show(topJpanel, buttonText(page.pre(currentCount)));
}

});
jb_next.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
currentCount = currentCount + 1;
if(page.isEnd(currentCount)){
currentCount = page.getTotalCount();
}else{}
cardLayout.show(topJpanel, buttonText(page.next(currentCount)));
}

});
}



// 根据输入的数返回按钮的文本
public String buttonText(int i) {
String setButtonText = null;
switch (i) {
case 1:
setButtonText = "按钮一";
break;
case 2:
setButtonText = "按钮二";
break;
case 3:
setButtonText = "按钮三";
break;
case 4:
setButtonText = "按钮四";
break;
case 5:
setButtonText = "按钮五";
break;
case 6:
setButtonText = "按钮六";
break;
default:
setButtonText = "操作有误";
break;
}
return setButtonText;
}

public static void main(String[] args) {
TestCardLayout test = new TestCardLayout();
test.showMe();
}
}


package cn.ljz.test;

/**
* @theme 分页显示
* @author lijingzan
* @time 2010/11/09
*/
public class Page {
private int totalCount;// 总张数

public int getTotalCount() {
return totalCount;
}

public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}

public Page(int totalCount) {
this.totalCount = totalCount;
}

// 获得后面一张
public int next(int currentCount) {
if (isEnd(currentCount)) {
return totalCount;
} else {
return currentCount ;
}
}

// 获得前面一张
public int pre(int currentCount) {
if (isFirst(currentCount)) {
return 1;
} else {
return currentCount ;
}
}

// 返回第一张
public int first() {
return 1;
}

// 返回最后一张
public int last() {
return totalCount;
}

// 判断是否是最后一张
public boolean isEnd(int currentCount) {
if (currentCount < totalCount) {
return false;
} else {
return true;
}
}

// 判断是否是第一张
public boolean isFirst(int currentCount) {

if(currentCount>1){
return false;
}else{
return true;
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值