隨筆 - 71  文章 - 15  trackbacks - 0
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          因為口渴,上帝創造了水;
          因為黑暗,上帝創造了火;
          因為我需要朋友,所以上帝讓你來到我身邊
          Click for Shaanxi xi'an, Shaanxi Forecast
          ╱◥█◣
            |田|田|
          ╬╬╬╬╬╬╬╬╬╬╬
          If only I have such a house!
          〖總在爬山 所以艱辛〗
          Email:myesjoy@yahoo.com.cn
          NickName:yesjoy
          MSN:myesjoy@hotmail.com
          QQ:150230516

          〖總在尋夢 所以苦痛〗

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          Hibernate在線

          Java友情

          Java認證

          linux經典

          OA系統

          Spring在線

          Structs在線

          專家專欄

          企業信息化

          大型設備共享系統

          工作流

          工作流產品

          網上購書

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          1.4 LayoutManager 布局管理器(2)

            4. CardLayout
            CardLayout布局管理器能夠幫助用戶處理兩個以至更多的成員共享同一顯示空間,它把容器分成許多層,每層的顯示空間占據整個容器的大小,但是每層只允許放置一個組件,當然每層都可以利用Panel來實現復雜的用戶界面。牌布局管理器(CardLayout)就象一副疊得整整齊齊的撲克牌一樣,有54張牌,但是你只能看見最上面的一張牌,每一張牌就相當于牌布局管理器中的每一層。
           例7

           1 import java.awt.*;
           2 import java.awt.event.*//事件處理機制,下一節的內容
           3 public class ThreePages implements MousListener {
           4  CardLayout layout=new CardLayout(); //實例化一個牌布局管理器對象
           5  Frame f=new Frame("CardLayout");
           6  Button page1Button;
           7  Label page2Label; //Label是標簽,實際上是一行字符串
           8  TextArea page3Text; //多行多列的文本區域
           9  Button page3Top;
          10  Button page3Bottom;
          11  public static void main(String args[]) 
          12  { 
          13   new ThreePages().go(); 
          14  }
          15  public void go()
          16  {   
          17   System.out.println("123");
          18   f.setLayout(layout); //設置為牌布局管理器layout
          19   f.add(page1Button=new Button("Button page"),"page1Button"); /*第二個參數"page1Button"表示的是你對這層牌所取的名字*/
          20   page1Button.addMouseListener(this); //注冊監聽器
          21   f.add(page2Label=new Label("Label page"),"page2Label");
          22   page2Label.addMouseLisener(this); //注冊監聽器
          23   Panel panel=new Panel();
          24   panel.setLayout(new BorderLayout());
          25   panel.add(page3Text=new TextArea("Composite page"),"Center");
          26   page3Text.addMouseListener(this); 
          27   panel.add(page3Top=new Button("Top button") , "North");
          28   page3Top.addMouseListener(this);
          29   panel.add(page3Bottom=new Button("Bottom button") ,"South");
          30   page3Bottom.addMouseListener(this);
          31   f.add(panel,"panel");
          32   f.setSize(200,200);
          33   f.setVisible(true);
          34  }
          35 //……
          36 }
          37 
          38 

           5.容器的嵌套
            在復雜的圖形用戶界面設計中,為了使布局更加易于管理,具有簡潔的整體風格,一個包含了多個組件的容器本身也可以作為一個組件加到另一個容器中去,容器中再添加容器,這樣就形成了容器的嵌套。下面是一個容器嵌套的例子。
          例8

           1 import java.awt.*;
           2 public class ExGui3{
           3  private Frame f;
           4  private Panel p;
           5  private Button bw,bc;
           6  private Button bfile,bhelp;
           7  public static void main(String args[])
           8  {
           9   ExGui3 gui = new ExGui3();
          10   gui.go(); 
          11  }
          12  public void go(){
          13   f = new Frame("GUI example 3");
          14   bw=new Button("West");
          15   bc=new Button("Work space region");
          16   f.add(bw,"West");
          17   f.add(bc,"Center");
          18   p = new Panel();
          19   f.add(p,"North");
          20   bfile= new Button("File");
          21   bhelp= new Button("Help");
          22   p.add(bfile);
          23   p.add(bhelp);
          24   f.pack();
          25   f.setVisible(true);
          26  }
          27 }
          28 

           小 結:
             1.Frame是一個頂級窗口。Frame的缺省布局管理器為BorderLayout。
             2.Panel 無法單獨顯示,必須添加到某個容器中。 Panel 的缺省布局管理器為FlowLayout。
             3.當把Panel 作為一個組件添加到某個容器中后,該Panel 仍然可以有自己的布局管理器。因此,可以利用Panel 使得BorderLayout 中某個區域顯示多個組件,達到設計復雜用戶界面的目的 。
             4.如果采用無布局管理器 setLayout(null),則必須使用setLocation(),setSize(),setBounds()等方法手工設置組件的大小和位置,此方法會導致平臺相關,不鼓勵使用。

          posted on 2006-01-21 23:29 ★yesjoy★ 閱讀(577) 評論(0)  編輯  收藏 所屬分類: java.awt包
          主站蜘蛛池模板: 温州市| 内江市| 家居| 固始县| 雷州市| 清水县| 宁远县| 凉山| 沭阳县| 三门峡市| 贵南县| 托里县| 沽源县| 萝北县| 新巴尔虎右旗| 西峡县| 东乡县| 岳西县| 财经| 丹凤县| 新邵县| 浏阳市| 昌图县| 枣强县| 鲁山县| 肇源县| 巴塘县| 休宁县| 三穗县| 南昌市| 荔浦县| 巍山| 上高县| 巴东县| 广安市| 汉沽区| 黑山县| 邵武市| 亳州市| 辽中县| 蛟河市|