java课件第九讲组件布局管理.ppt_第1页
java课件第九讲组件布局管理.ppt_第2页
java课件第九讲组件布局管理.ppt_第3页
java课件第九讲组件布局管理.ppt_第4页
java课件第九讲组件布局管理.ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、组件布局管理,管理容器中的布局,组件布局管理,下面的布局管理器包含在Java编程语言中: - Flow LayoutPanel和Applets的缺省布局管理器 - Border LayoutWindow、Dialog及Frame的缺省管理程序 - Grid Layout - Card Layout - GridBag Layout,顺序布局(FlowLayout)1,顺序布局(FlowLayout)是其中最基本的一种布置,是面板(Panel)和它的子类Applet的缺省布局管理器。面板是一个容器,可以容纳多个组件;Applet是它的子类,也继承了能容纳组件的能力。 顺序布局是指将一个个组件从左

2、到右依次、从上到下依次排列,每个组件所占的空间依据各组件所指定的合适尺寸来安排,当一行容纳不下时,便自动安排在下一行。,顺序布局(FlowLayout)2,FlowLayout(); FlowLayout(int align) FlowLayout(int align,int hgap,int vgap); setLayout(new FlowLayout(FlowLayout.RIGHT, 20, 40); setLayout(new FlowLayout(FlowLayout.LEFT),setLayout(new FlowLayout(FlowLayout.LEFT,50,50);,边界

3、布局(BorderLayout)1,边界布局(BorderLayout)是窗口类(Window,Frame,Dialog和FileDialog)的缺省布局管理器。 Border布局管理器为在一个Panel或Window中放置组件提供一个更复杂的方案。Border布局管理器包括五个明显的区域:右东左西上北下南和居中 。 当拉伸使用BordLayout布局管理器的容器,各个组件相对位置不变,中间部分组件的尺寸会发生变化,East和West位置的组件的宽度不变,高度随着改变,而South和North位置的组件的高度不变,宽度随之改变。,边界布局(BorderLayout)2,边界布局(BorderL

4、ayout)3,import java.awt.*; import java.applet.Applet; public class buttonDir extends Applet public void init() setLayout(new BorderLayout(); add(new Button(North), BorderLayout.NORTH); add(new Button(South),BorderLayout.SOUTH); add(new Button(East), BorderLayout.EAST); add(new Button(West), BorderLa

5、yout.WEST); add(newButton(Center),BorderLayout.CENTER); ,边界布局(BorderLayout)4,setLayout(new BorderLayout(); 构造并安装一个新Border布局,在组件之间没有间隙。 setLayout(new BorderLayout(int hgap, int vgap);构造并安装一个Border布局,在由hgap和 vgap 规定的组件之间有规定的间隙。 add(button,”Center”))而使用add(button,BorderLayout.CENTER)时。拼写与大写很关键。,卡片布局(Ca

6、rdLayout)1,卡片布局(CardLayout)将组件像卡片一样放置,每次只显示一个,实现界面之间的相互切换。能够帮助用户处理两个以至更多的成员共享同一显示空间。 CardLayout();创建间距为零的对象。 CardLayout(int hgap,int vgap);创建带有水平hgap和垂直vgap间距的对象。,卡片布局(CardLayout)2,l4 = new Label(This is the fourth Panel); p4.setBackground(Color.white); p4.add(l4); f.add(p4, Fourth);,Card布局管理器的show(

7、)方法应请求转换到一个新卡中。 first(Container parent)显示第一张卡片。 last(Container parent)显示最后一张卡片。 next(Container parent)显示下一张卡片,如果当前是最后一张,则显示第一张。 previous(Container parent)显示前一张卡片。 show(Container parent,String name)显示指定名称的组件。,网格布局(GridLayout)1,网格布局(GridLayout)是把容器区域分为若干个网络,每一个网格可以放置一个组件。当改变容器大小后,其中的组件相对位置不变,但大小改变。容器中

8、各个组件同高度、同宽度。各个组件的排列方式为:从上到下、从左到右一次排列。 其构造方法: new GridLayout(int rows,int columns);创建一个rows行columns列的GridLayout布局管理器对象。,网格布局(GridLayout)2,因为有Border布局管理器,组件相应的位置不随区域的缩放而改变。只是组件的大小改变。,网格布局(GridLayout)3,Grid布局管理器总是忽略组件的最佳大小。所有单元的宽度是相同的,是根据单元数对可用宽度进行平分而定的。同样地,所有单元的高度是相同的,是根据行数对可用高度进行平分而定的。 setLayout(new

9、GridLayout(int rows, int cols); 创建并安装一个带有规定好行数和栏数的Grid布局。对布局中所有组件所给的大小一样。 setLayout(new GridLayout(int rows, int cols, int hgap, int vgap);,网格包布局(GridBagLayout),GridBag布局管理器在网格的基础上提供复杂的布局,但它允许单个组件在一个单元中而不是填满整个单元那样地占用它们的最佳大小。网格包布局管理器也允许单个组件扩展成不止一个单元。,面板(Panel),象Frames一样,Panels提供空间来连接任何GUI组件,包括其它面板。每个

10、面板都可以有它自己的布管理程序。 一旦一个面板对象被创建,为了能看得见,它必须添加到窗口或框架对象上。用Container类中的add()方式可以做到这一点。,手工布局,因为布局管理器负责容器里的组件的位置和大小,因此不需要总是自己去设定组件的大小或位置。如果想这样做(使用setLocation(),setSize()或setBounds()方法中的任何一种),布局管理器将覆盖你的决定。 如果必须控制组件的大小或位置,而使用标准布局管理器做不到,那就可能通过将下述方法调用发送到容器中来中止布局管理器: setLayout(null); 做完这一步,必须对所有的组件使用setLocation(),setSize()或setBounds(),来将它们定位在容器中。请注意,由于窗口系统和字体大小之间的不同,这种办法将导致从属于平台的布局。更好的途径是创建布局管理器的新子类。,手工布局,setLayout(null); Label label=new Label(this is NoLayout!); add(label); label.setBounds(80,80,100,200);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论