1、6.5 图形界面的布局设计,每一个容器组件都有一个默认的布局管理方式,也可以用setLayout方法来设置其他布局管理器。一旦确定了布局管理方式,容器组件就可以用add方法加入组件。 布局管理器用来确定组件在容器中的位置和大小,AWT中定义了布局管理器接口LayoutManager的实现类来实现此功能,LayoutManager的实现类,FlowLayout BorderLayout GridLayout GridBagLayout CardLayout null,6.5.1 FlowLayout布局管理器,FlowLayout是一种最简单的布局管理,是Panel的默认布局。它以流式自左向右、。
2、自上而下地放置容器中的组件,其默认方式为居中对齐方式,也可以手工设置左对齐或右对齐,创建默认的FlowLayout布局管理器: FlowLayout() 以指定的对齐方式创建: FlowLayout(int) 以指定的对齐方式及间距创建FlowLayout布局管理器: FlowLayout(int,int,int,FlowLayout.LEFT FlowLayout.RIGHT FlowLayout.CENTER,对齐方式,组件行间距,组件列间距,6.5.2 BorderLayout布局管理器,BorderLayout是Frame和Dialog的默认布局。它将整个容器分为东、西、南、北、中5个。
3、部分,加入组件时需要指明放置的位置。 创建默认的BorderLayout布局管理器: BorderLayout() 以指定的行、列间距创建BorderLayout布局管理器: BorderLayout(int,int,组件行间距,组件列间距,BorderLayout的主要方法,6.5.3 GridLayout布局管理器,GridLayout布局将容器划分成m行x n列大小相同的格子,组件放在格子中。 创建默认的GridLayout布局,所有组件在一行显示: GridLayout() 以指定的行数、列数创建GridLayout布局: GridLayout(int,int) 以指定的行数、列数、行。
4、间距、列间距创建布局: GridLayout(int,int,int,int,GridLayout的主要方法,import java.applet.*; import java.awt.*; import java.awt.event.*; public class TestGridLayout extends Applet public void init() setLayout(new GridLayout(5,6); /GridLayout布局策略5行6列30网格 for(int i=0;i=0) if(int)(Math.random()*100)=50) add(new Button。
5、(Integer.toString(i*6+j);/随机加入按钮 else add(new Label();/随机加入空白,6.5.4 GridBagLayout布局管理器,GridBagLayout布局将容器划分成很多矩形小格子,每个组件可以占用一个或多个单元,从而可以指定每个组件所占空间的大小 创建默认的GridBagLayout布局: GridBagLayout() 通过设置和组件有关的GridContaints对象的属性来分配每个组件,然后调用GridBagLayout的setContaints方法将组件与GridContaints对象关联,最后将组件加入容器中,GridContain。
6、ts对象的常用属性,1)gridwidth, gridheight 这两个参数决定组件所占空间单元的行数和列数,默认值为1。 (2)fill 当组件显示区域比其尺寸大时,该参数确定怎样重新定义组件大小,其默认值为: GridBagContaints.NORE (不重新定义大小) 还可以为: GridBagContaints.Horizontal (水平方向拉伸填满) GridBagContaints.Vertical (垂直方向拉伸填满) GridBagContaints.BOTH (两个方向拉伸填满) (3)weightx, weighty 指定分配多余空间的方式,6.5.5 CardLay。
7、out布局管理器,CardLayout布局将容器中的组件象扑克牌一样排列,每次只能显示最上面的一张。 创建默认的CardLayout布局: CardLayout() 以指定的行间距、列间距创建GridLayout布局: CardLayout(int,int) 将组件(通常是Panel)以CardLayout加入时,需要指定一个名字,如:add(“ONE”, Panel,CardLayout的主要方法,6.5.6 null 布局管理器,null 布局管理器将主动权交给用户,由用户使用坐标系统来放置每个组件,即调用组件的setBounds()方法来设置位置和大小。 如: this.setLayout(null); Label L1=new Label(“test”); L3.setBounds(new Rectangle(108, 2, 98, 37); Add(L3,X 、y 坐标、长、宽。