java布局管理之CardLayout的简单实例

  1 import java.awt.BorderLayout;
  2 import java.awt.CardLayout;
  3 import java.awt.event.ActionEvent;
  4 import java.awt.event.ActionListener;
  5 
  6 import javax.swing.JButton;
  7 import javax.swing.JFrame;
  8 import javax.swing.JPanel;
  9 import javax.swing.JTextArea;
 10 
 11 public class TestCard implements ActionListener{
 12     
 13     private JFrame fm=new JFrame("卡片的测试");
 14     private JPanel cardpan,containbtn;   //cardpan为卡片显示区域,  containbtn为按钮显示区域
 15     private JButton btn1,btn2,btn3,btn4; //此处定义诗人的按钮
 16     private JPanel pan1,pan2,pan3,pan4;  //此处定义的面板中显示诗句
 17     private CardLayout card;             //定义卡片布局
 18     private JTextArea ta1,ta2,ta3,ta4;   //定义放诗句的文本域
 19     
 20     public TestCard(){
 21         
 22         //以下为初始化组件
 23         cardpan=new JPanel();
 24         containbtn=new JPanel();
 25         card=new CardLayout();
 26         cardpan.setLayout(card);
 27         
 28         btn1=new JButton("李白");
 29         btn2=new JButton("杜甫");
 30         btn3=new JButton("白居易");
 31         btn4=new JButton("孟浩然");
 32         
 33         ta1=new JTextArea(30,30);
 34         ta2=new JTextArea(30,30);
 35         ta3=new JTextArea(30,30);
 36         ta4=new JTextArea(30,30);
 37         
 38         //把定义的按钮放到显示按钮的面板中
 39         containbtn.add(btn1);
 40         containbtn.add(btn2);
 41         containbtn.add(btn3);
 42         containbtn.add(btn4);
 43         
 44         pan1=new JPanel();
 45         //给按钮添加监听事件
 46         btn1.addActionListener(this);
 47         btn2.addActionListener(this);
 48         btn3.addActionListener(this);
 49         btn4.addActionListener(this);
 50         
 51         
 52         //给定义的文本域中添加诗人相应的诗句
 53         ta1.append("日照香炉生紫烟,\r\n");
 54         ta1.append("遥看瀑布挂前川。\r\n");
 55         ta1.append("飞流直下三千尺,\r\n");
 56         ta1.append("疑是银河落九天。");
 57         
 58         ta2.append("两个黄鹂鸣翠柳,\r\n");
 59         ta2.append("一行白鹭上青天。\r\n");
 60         ta2.append("窗含西岭千秋雪,\r\n");
 61         ta2.append("门泊东吴万里船。");
 62         
 63         ta3.append("一道残阳铺水中,\r\n");
 64         ta3.append("半江瑟瑟半江红。\r\n");
 65         ta3.append("可怜九月初三夜,\r\n");
 66         ta3.append("露似珍珠月似弓。");
 67         
 68         ta4.append("春眠不觉晓,\r\n");
 69         ta4.append("处处闻啼鸟。\r\n");
 70         ta4.append("夜来风雨声,\r\n");
 71         ta4.append("花落知多少。");
 72         
 73         pan1.add(ta1);
 74         pan2=new JPanel();
 75         pan2.add(ta2);
 76         pan3=new JPanel();
 77         pan3.add(ta3);
 78         pan4=new JPanel();
 79         pan4.add(ta4);
 80         
 81         //把定义好的面板放到卡片布局的组件中
 82         cardpan.add("b1",pan1);
 83         cardpan.add("b2",pan2);
 84         cardpan.add("b3",pan3);
 85         cardpan.add("b4",pan4);
 86         
 87         
 88         fm.add(containbtn,BorderLayout.NORTH);//把显示按钮的组件放到上面显示
 89         fm.add(cardpan,BorderLayout.CENTER);//把显示文本域的组件放到中间显示
 90         
 91         fm.setSize(400,400);
 92         fm.setLocation(200,100);
 93         fm.setVisible(true);
 94         fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 95     }
 96     
 97   public static void main(String[] args) {
 98        new TestCard();
 99   }
100 
101 public void actionPerformed(ActionEvent e) {
102     // TODO Auto-generated method stub
103     /**
104      * e.getActionCommand()显示的结果是对应组件上的内容标签
105      * card.show(cardpan, "b1");表示对应组件和显示组件的名称
106      * CardLayout.show(Container parent, String name):显示卡片的实现方法定义
107      */
108     if("李白".equals(e.getActionCommand())){
109         card.show(cardpan, "b1");
110     }
111     if("杜甫".equals(e.getActionCommand())){
112         card.show(cardpan, "b2");
113     }
114     if("白居易".equals(e.getActionCommand())){
115         card.show(cardpan, "b3");
116     }
117     if("孟浩然".equals(e.getActionCommand())){
118         card.show(cardpan, "b4");
119     }
120 }
121 }

 

 

posted on 2018-03-29 10:09  没有太晚的开始  阅读(335)  评论(0编辑  收藏  举报

导航