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; } } }