布局管理器所属类包布局管理器所属类包所属类包布局管理器名称说明Java.awtFlowLayout(流式布局)组件按照加入的先后顺序按照设置的对齐方式从左向右排列,一行排满到下一行开始继续排列BorderLayout(边界布局)容器划分为东、西、南、北、中五个区域,每个区域只能放置一个组件。GridLayout(网格布局)容器的空间划分成M×N列的网格区域,每个区域只能放置一个组件。CardLayout(卡片布局)如同一叠牌,每个牌对应一个组件,但每次只能显示其中的一张牌。适用于在一个空间中防止多个组件的情况GridBagLayout(网格包布局)GridLayout的升级版,组件仍然是按照行、列放置,但是每个组件可以占据多个网格Java.swingBoxLayout(箱式布局)允许在容器中纵向或者横向防止多个控件SprigLayout(弹簧布局)根据一组约束条件放置控件无空布局不使用布局管理器,按照控件自身提供的大小、位置信息放置控件容器的默认布局管理器容器的默认布局管理器各容器都有默认的布局管理,见下表:容器默认布局方式顶层容器JFrameBorderLayout(边界布局)JDialogBorderLayout(边界布局)布局管理器所属类包2015/1/20JAppletFlowLayout(流式布局)中间容器JPanelFlowLayout(流式布局)FlowLayout(流式布局)FlowLayout(流式布局)使用FlowLayout布局方式的容器中组件按照加入的先后顺序按照设置的对齐方式(居中、左对齐、右对齐)从左向右排列,一行排满(即组件超过容器宽度后)到下一行开始继续排列。1、流式布局特征如下:l组件按照设置的对齐方式进行排列l不管对齐方式如何,组件均按照从左到右的方式进行排列,一行排满,转到下一行。(比如按照右对齐排列,第一个组件在第一行最右边,添加第二个组件时,第一个组件向左平移,第二个组件变成该行最右边的组件,这就是从左向右方式进行排列)2、流式布局FlowLayout类的常用构造函数和方法构造函数名称用途FlowLayout()构造一个新的FlowLayout,它是默认居中对齐的,默认的水平和垂直间隙是5个像素FlowLayout(intalign)构造一个新的FlowLayout,它具有指定的对齐方式,默认的水平和垂直间隙是5个像素五个参数值及含义如下:0或FlowLayout.lEFT,控件左对齐1或FlowLayout.CENTER,居中对齐2或FlowLayout.RIGHT,右对齐3或FlowLayout.LEADING,控件与容器方向开始边对应4或FlowLayout.TRAILING,控件与容器方向布局管理器所属类包2015/1/20结束边对应如果是0、1、2、3、4之外的整数,则为左对齐FlowLayout(intalign,inthgap,intvgap)创建一个新的流布局管理器,它具有指定的对齐方式以及指定的水平和垂直间隙。方法名称用途VoidsetAlignment(intalign)设置此布局的对齐方式。voidsetHgap(inthgap)设置组件之间以及组件与Container的边之间的水平间隙。voidsetVgap(intvgap)设置组件之间以及组件与Container的边之间的垂直间隙。BorderLayout边界布局管理器把容器的的布局分为五个位置:CENTER、EAST、WEST、NORTH、SOUTH。依次对应为:上北(NORTH)、下南(SOUTH)、左西(WEST)、右东(EAST),中(CENTER),如下图所示。特征:l可以把组件放在这五个位置的任意一个,如果未指定位置,则缺省的位置是CENTER。l南、北位置控件各占据一行,控件宽度将自动布满整行。东、西和中间位置占据一行;若东、西、南、北位置无控件,则中间控件将自动布满整个屏幕。若东、西、南、北位置中无论哪个位置没有控件,则中间位置控件将自动占据没有控件的位置。l它是窗口、框架的内容窗格和对话框等的缺省布局。布局管理器所属类包2015/1/201、常见的构建函数和方法构造方法摘要BorderLayout():构造一个组件之间没有间距(默认间距为0像素)的新边框布局。BorderLayout(inthgap,intvgap):构造一个具有指定组件(hgap为横向间距,vgap为纵向间距)间距的边框布局。方法摘要intgetHgap():返回组件之间的水平间距。intgetVgap():返回组件之间的垂直间距。voidremoveLayoutComponent(Componentcomp):从此边框布局中移除指定组件。voidsetHgap(inthgap):设置组件之间的水平间距。voidsetVgap(intvgap):设置组件之间的垂直间距。CardLayout卡片布局能够让多个组件共享同一个显示空间,共享空间的组件之间的关系就像一叠牌,组件叠在一起,初始时显示该空间中第一个添加的组件,通过CardLayout类提供的方法可以切换该空间中显示的组件。1、CardLayout类的常用构造函数及方法布局管理器所属类包2015/1/20布局管理器之null布局(空布局)一般容器都有默认布局方式,但是有时候需要精确指定各个组建的大小和位置,就需要用到空布局。操作方法:1)首先利用setLayout(null)语句将容器的布局设置为null布局(空布局)。2)再调用组件的setBounds(intx,inty,intwidth,intheight)方法设置组件在容器中的大小和位置,单位均为像素。x为控件左边缘离窗体左边缘的距离y为控件上边缘离窗体上边缘的距离width为控件宽度height为控件高度布局管理器之GridLayout(网格布局)网格布局特点:布局管理器所属类包2015/1/20l使容器中的各组件呈M行×N列的网格状分布。l网格每列宽度相同,等于容器的宽度除以网格的列数。l网格每行高度相同,等于容器的高度除以网格的行数。l各组件的排列方式为:从上到下,从左到右。l组件放入容器的次序决定了它在容器中的位置。l容器大小改变时,组件的相对位置不变,大小会改变。l设置网格布局行数和列数时,行数或者列数可以有一个为零。若rows为0,cols为3,则列数固定为3,行数不限,每行只能放3个控件或容器。若cols为0,rows为3,则行数固定为3,列数不限,且每行必定有控件,若组件个数不能整除行数,则除去最后一行外的所有行组件个数为:Math.ceil(组件个数/rows)。Math.ceil(doublex):传回不小于x的最小整数值。比如行数为3,组件数为13个,则Math.ceil(13/3)=5,即第一行,第二行组件数各为5个,剩下的组件放在最后一行。l若组件数超过网格设定的个数,则布局管理器会自动增加网格个数,原则是保持行数不变。构造方法摘要GridLayout():创建具有默认值的网格布局,即每个组件占据一行一列。GridLayout(introws,intcols):创建具有指定行数和列数的网格布局。Rows为行数,cols为列数。GridLayout(introws,intcols,inthgap,intvgap):创建具有指定行数、列数以及组件水平、纵向一定间距的网格布局。方法摘要intgetColumns():获取此布局中的列数。布局管理器所属类包2015/1/20intgetHgap():获取组件之间的水平间距。intgetRows():获取此布局中的行数。intgetVgap():获取组件之间的垂直间距。voidremoveLayoutComponent(Componentcomp):从布局移除指定组件。voidsetColumns(intcols):将此布局中的列数设置为指定值。voidsetHgap(inthgap):将组件之间的水平间距设置为指定值。voidsetRows(introws):将此布局中的行数设置为指定值。voidsetVgap(intvgap):将组件之间的垂直间距设置为指定值。StringtoString():返回此网格布局的值的字符串表示形式。布局管理器所属类包2015/1/20