資源描述:
《Java 卡片布局管理器》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、練習10卡片布局管理器本例知識點一句話講解新學知識使用CardLayout類實現(xiàn)布局管理器的創(chuàng)建使用Button類制作按鈕已學知識使用Color類設(shè)置顏色使用Panel類創(chuàng)建面板一、練習具體要求本例制作卡片布局管理器,運行效果如圖10-1所示。執(zhí)行本例實例后,將出現(xiàn)一個卡片布局管理器的界面,點擊相應(yīng)的按鈕可以找到想要看到的卡片。本實例的知識點有:Panel類,CardLayout類和Button類的應(yīng)用。二、程序及注釋(1)編程思路:本例因為要制作卡片布局管理器,所以首先要構(gòu)造框架窗體。先通過函數(shù)this.setLayout(newBorderLayout())設(shè)置Frame的布局管理器為
2、BorderLayout;再兩次實例化Panel類得到兩個對象pnlCommandArea和pnlDisplayArea;然后通過函數(shù)this.add(pnlCommandArea,BorderLayout.NORTH)和函數(shù)this.add(pnlDisplayArea,BorderLayout.CENTER)將兩個Panel對象分別加入到布局管理器中。然后,因為要制作顯示功能區(qū)域,所以先通過函數(shù)pnlDisplayArea.setLayout(cardlayout1)將顯示功能區(qū)域Panel的布局管理器設(shè)置為CardLayout;再通過函數(shù)addActionListener(newAc
3、tionListener()為四個功能按鈕設(shè)置事件監(jiān)聽器;最后通過函數(shù)pnlCommandArea.add()把四個功能按鈕加入到Panel。最后,因為要處理按鈕事件,所以首先在處理按鈕事件的函數(shù)processAction(ActionEvente)里,先通過函數(shù)(Button)e.getSource()獲取事件源,該函數(shù)返回一個Button類的對象btnEvent;再通過函數(shù)btnEvent.equals()就可以判斷用戶選擇是哪個按鈕。(2)程序?qū)崿F(xiàn)及注釋://CardLayoutDemo.javaimportjava.awt.*;importjava.awt.event.*;publ
4、icclassCardLayoutDemoextendsFrame{//包含四個功能按鈕的Panel的定義和創(chuàng)建PanelpnlCommandArea=newPanel();//顯示功能Panel的定義和創(chuàng)建PanelpnlDisplayArea=newPanel();//CardLayout布局管理器的創(chuàng)建CardLayoutcardlayout1=newCardLayout();//四個功能按鈕的定義和創(chuàng)建ButtonbtnFirst=newButton("第一個");ButtonbtnPrevious=newButton("前一個");ButtonbtnNext=newButton(
5、"后一個");ButtonbtnLast=newButton("最后一個");//框架窗體的構(gòu)造方法publicCardLayoutDemo(){super("卡片布局管理器");//四個功能按鈕的顏色設(shè)置btnFirst.setBackground(Color.white);btnPrevious.setBackground(Color.white);btnNext.setBackground(Color.white);btnLast.setBackground(Color.white);//設(shè)置Frame的布局管理器為BorderLayoutthis.setLayout(newBord
6、erLayout());//把兩個Panel加入到布局管理器中this.add(pnlCommandArea,BorderLayout.NORTH);this.add(pnlDisplayArea,BorderLayout.CENTER);//把顯示功能區(qū)域Panel的布局管理器設(shè)置為CardLayoutpnlDisplayArea.setLayout(cardlayout1);//創(chuàng)建第一個顯示PanelPanelpnlFirst=newPanel();pnlFirst.setBackground(Color.yellow);pnlFirst.setForeground(Color.bl
7、ue);pnlDisplayArea.add("first",pnlFirst);pnlFirst.add(newLabel("這是第一張卡片"));//創(chuàng)建第二個顯示PanelPanelpnlSecond=newPanel();pnlSecond.setBackground(Color.pink);pnlSecond.setForeground(Color.blue);pnlDisplayArea.add("secon