| 贵 州 学 习 网 |
|
在使用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); } } 来源:www.gzu521.com 5.1.4 layoutmanager 布局管理器(2) 4. cardlayout cardlayout布局管理器能够帮助用户处理两个以至更多的成员共享同一显示空间,它把容器分成许多层,每层的显示空间占据整个容器的大小,但是每层只允许放置一个组件,当然每层都可以利用panel来实现复杂的用户界面。牌布局管理器(cardlayout)就象一副叠得整整齐齐的扑克牌一样,有54张牌,但是你只能看见最上面的一张牌,每一张牌就相当于牌布局管理器中的每一层。 例5.7 import java.awt.*; import java.awt.event.*; //事件处理机制,下一节的内容 public class threepages implements mouslistener { cardlayout layout=new cardlayout(); //实例化一个牌布局管理器对象 frame f=new frame("cardlayout"); button page1button; label page2label; //label是标签,实际上是一行字符串 textarea page3text; //多行多列的文本区域 button page3top; button page3bottom; public static void main(string args[]) { new threepages().go(); } public void go() { f.setlayout(layout); //设置为牌布局管理器layout f.add(page1button=new button("button page"),"page1button"); /*第二个参数"page1button"表示的是你对这层牌所取的名字*/ page1button.addmouselistener(this); //注册监听器 f.add(page2label=new label("label page"),"page2label"); page2label.addmouselisener(this); //注册监听器 panel panel=new panel(); panel.setlayout(new borderlayout()); panel.add(page3text=new textarea("composite page"),"center"); page3text.addmouselistener(this); panel.add(page3top=new button("top button") , "north"); page3top.addmouselistener(this); panel.add(page3bottom=new button("bottom button") ,"south"); page3bottom.addmouselistener(this); f.add(panel,"panel"); f.setsize(200,200); f.setvisible(true); } …… } 本文共2页: 第 [1] [2] 页
|
责任编辑:gzu521