网站首页

家园论坛

老版论坛

家园博客

业界新闻

技术文档

下载中心

速查中心

图片中心

硬件资讯
上一篇:JAVA教程 第四讲 Java的例外处理和I/O流(二) 下一篇:JAVA教程 第五讲 AWT图形用户界面设计(二)
JAVA教程 第五讲 AWT图形用户界面设计(一)

来源: 作者: 添加日期:2005-9-4 19:19:56 点击次数:

        f.add(button3);
        f.setSize(300,100);
        f.setVisible(true);
     }
    }


当容器的大小发生变化时,用FlowLayout管理的组件会发生变化,其变化规律是:组件的大小不变,但是相对位置会发生变化。例如上图中有三个按钮都处于同一行,但是如果把该窗口变窄,窄到刚好能够放下一个按钮,则第二个按钮将折到第二行,第三个按钮将折到第三行。按钮"Open"本来在按钮"OK"的右边,但是现在跑到了下面,所以说"组件的大小不变,但是相对位置会发生变化"。

 2. BorderLayout


  BorderLayout 是Window,Frame和Dialog的缺省布局管理器。BorderLayout布局管理器把容器分成5个区域:North,South,East,West和Center,每个区域只能放置一个组件。各个区域的位置及大小如下图所示:

    

 例5.5
    import java.awt.*;
    public class buttonDir{
     public static void main(String args[]){
      Frame f = new Frame("BorderLayout");
      f.setLayout(new BorderLayout());
      f.add("North", new Button("North"));
      //第一个参数表示把按钮添加到容器的North区域

      f.add("South", new Button("South"));
      //第一个参数表示把按钮添加到容器的South区域

      f.add("East", new Button("East"));
      //第一个参数表示把按钮添加到容器的East区域

      f.add("West", new Button("West"));
      //第一个参数表示把按钮添加到容器的West区域
      f.add("Center", new Button("Center"));
      //第一个参数表示把按钮添加到容器的Center区域
      f.setSize(200,200);
      f.setVisible(true);
     }
    }

  


  在使用BorderLayout的时候,如果容器的大小发生变化,其变化规律为:组件的相对位置不变,大小发生变化。例如容器变高了,则North、South区域不变,West、Center、East区域变高;如果容器变宽了,West、East区域不变,North、Center、South区域变宽。不一定所有的区域都有组件,如果四周的区域(West、East、North、South区域)没有组件,则由Center区域去补充,但是如果Center区域没有组件,则保持空白,其效果如下几幅图所示:

  
       North区域缺少组件         

  
      North和Center区域缺少组件



 
3. GridLayout

  使容器中各个组件呈网格状布局,平均占据容器的空间。

 例5.6
    import java.awt.*;
    public class ButtonGrid {
    public static void main(String args[]) {
      Frame f = new Frame("GridLayout");
      f.setLayout(new GridLayout(3,2));
                 //容器平均分成3行2列共6格
      f.add(new Button("1")); //添加到第一行的第一格
      f.add(new Button("2")); //添加到第一行的下一格
      f.add(new Button("3")); //添加到第二行的第一格
      f.add(new Button("4")); //添加到第二行的下一格
      f.add(new Button("5")); //添加到第三行的第一格
      f.add(new Button("6")); //添加到第三行的下一格
      f.setSize(200,200);
      f.setVisible(true);
    }
    }

   运行结果如下:

 

5.1.4 LayoutManager 布局管理器(2)

  4. CardLayout

  CardLayout布局管理器能够帮助用户处理两个以至更多的成员共享同一显示空间,它把容器分成许多层,每层的显示空间占据整个容器的大小,但是每层只允许放置一个组件,当然每层都可以利用Panel来实现复杂的用户界面。牌布局管理器(CardLayout)就象一副叠得整整齐齐的扑克牌一样,有54张牌,但是你只能看见最上面的一张牌,每一张牌就相当于牌布局管理器中的每一层。

本新闻共4页,当前在第3页  1  2  3  4  

 
设为首页 | 加入收藏 | 业务办理 | 友情链接 | 论坛版面 | 浙ICP备07502118号 |