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;
}
}
}
分享到:
相关推荐
在"Swing demo例子"这个主题中,我们将深入探讨Swing的基本概念、主要组件以及如何通过实例来学习和应用Swing。 Swing库为开发者提供了大量预定义的组件,如按钮(JButton)、文本框(JTextField)、标签(JLabel)...
每个容器都有一个布局管理器,如FlowLayout、BorderLayout、GridLayout、CardLayout和BoxLayout,它们决定了组件在容器中的排列方式。 3. 菜单与菜单条:`JMenu`和`JMenuBar`用于创建应用的菜单系统,` JMenuItem`...
- 采用了`CardLayout`布局管理器来实现动态切换不同功能界面的效果。 #### MBS类设计与实现 - 用于处理图书管理的核心业务逻辑。 - 包含了一个静态数组`books`来存储图书对象。 - 提供了一系列方法来实现添加、显示...
2. **布局管理器**:如FlowLayout、BorderLayout、GridLayout、GridBagLayout和CardLayout,这些示例会帮助你理解如何有效地组织和调整组件的位置和大小。 3. **事件处理**:Swing通过EventListener和...
“计算器解题思路.txt”可能涵盖了如何创建一个简单的计算器应用,这通常涉及到键盘事件监听(KeyListener)或者ActionListener,以及计算逻辑的实现。事件处理可能是根据按键的按下(KeyEvent)或按钮的点击...
这些组件是构建简单GUI的基本元素,每个组件都有其特定的用途和属性。 3. **Swing组件**:Swing库扩展了AWT,提供了更丰富的组件集,如JButton、JLabel、JTextField、JTextArea等。Swing组件更加现代化,支持模型-...