CardLayoutDemo.java
上传用户:szfcled
上传日期:2022-06-12
资源大小:236k
文件大小:2k
源码类别:

文件格式

开发平台:

Java

  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4. public class CardLayoutDemo extends MouseAdapter {
  5. JPanel p1,p2,p3,p4,p5;
  6. JLabel l1,l2,l3,l4,l5;
  7. //声明一个CardLayout 对象
  8. CardLayout myCard;
  9. JFrame frame;
  10. Container contentPane;
  11. public static void main (String args[]) {
  12. CardLayoutDemo that = new CardLayoutDemo();
  13. that.go();
  14. }
  15. public void go() {
  16. frame = new JFrame ("Card Test");
  17. contentPane = frame.getContentPane();
  18. myCard = new CardLayout();
  19. //设置CardLayout 布局管理器
  20. contentPane.setLayout(myCard);
  21. p1 = new JPanel();
  22. p2 = new JPanel();
  23. p3 = new JPanel();
  24. p4 = new JPanel();
  25. p5 = new JPanel();
  26. //为每个JPanel创建一个标签并设定不同的
  27. //背景颜色,以便于区分
  28. l1 = new JLabel("This is the first JPanel");
  29. p1.add(l1);
  30. p1.setBackground(Color.white);
  31. l2 = new JLabel("This is the second JPanel");
  32. p2.add(l2);
  33. p2.setBackground(Color.black);
  34. l3 = new JLabel("This is the third JPanel");
  35. p3.add(l3);
  36. p3.setBackground(Color.magenta);
  37. l4 = new JLabel("This is the fourth JPanel");
  38. p4.add(l4);
  39. p4.setBackground(Color.yellow);
  40. l5 = new JLabel("This is the fifth JPanel");
  41. p5.add(l5);
  42. p5.setBackground(Color.red);
  43. // 设定鼠标事件的监听程序
  44. p1.addMouseListener(this);
  45. p2.addMouseListener(this);
  46. p3.addMouseListener(this);
  47. p4.addMouseListener(this);
  48. p5.addMouseListener(this);
  49. //将每个JPanel作为一张卡片加入frame的内容窗格
  50. contentPane.add(p1, "First");
  51. contentPane.add(p2, "Second");
  52. contentPane.add(p3, "Third");
  53. contentPane.add(p4, "Fourth");
  54. contentPane.add(p5, "Fifth");
  55. //显示第一张卡片
  56. myCard.show(contentPane, "First");
  57. frame.setSize(300, 200);
  58. frame.show();
  59. }
  60. // 处理鼠标事件,每当敲击鼠标键时,即显示下一张卡片。
  61. // 如果已经显示到最后一张,则重新显示第一张。
  62. public void mouseClicked(MouseEvent e) {
  63. myCard.next(contentPane);
  64. }
  65. }