第一节 | 第二节 | 第三节 | 第四节 | 第五节 | 第六节 | 第七节 | 第八节 | 第九节 | 第十节 | 第十一节 |
![]() |
||||||||||
如果用户不指定容器所使用的布局管理器,那么容器将使用自己默认的布局管理器。每当容器需要改变外观时,这些默认的布局管理器会发挥作用。大多数布局管理器的方法都不需要程序直接调用。AWT提供的布局管理器各有各的长处和缺点。用户根据不同要求,选用不同的AWT布局管理器。基本规则是: (1)若用户要求尽量使用所有的空间来显示组件,可以考虑使用BorderLayout。如果使用BorderLayout,用户应该将占用空间最大的组件放在中心部位。 当用户向使用BorderLayout布局管理器的容器中加入组件时,用户必须使用两个参数的add()方法,而且第一个参数必须为“North”、“South”、“East”、“West”或“Center”。如果用户使用一个参数的add()方法或指定的第一个参数无效,那么该组件将不能显示出来。 在默认情况下, BorderLayout将使它所管理的组件之间没有空隙,用户可以用下面的构造方法指定间隙(以像素为单位): public BorderLayout(int horizontalGap, int verticalGap) (2)若用户需要在紧凑的一行中以组件的自然尺寸显示较少的组件,用户可以考虑用面板容纳组件,并使用面板的默认布局管理器FlowLayout。 FlowLayout类有3个构造方法: public FlowLayout() pub1ic FlowLayout(int alignment) pub1ic FlowLayout(int alignment,int horizontalGap,int verticalGap) 每一行组件将根据FlowLayout创建时alignment参数的指定要求放在屏幕的中心位置(默认)、左侧或右侧。alignment参数的值必须是FlowLayout.LEFT、 Flowlayout.CENTER或FlowLayout.RIGHT。horizontalGap和verticalGap参数指定了组件间隔距离(以像素为单位)。如果用户没有指定间隔值,FlowLayout将自动指定其值为5。 (3)若用户需要在多行或多列中显示一些同样尺寸的组件,GridLayout最适合此情况。如果有必要的话,可以使用面板来容纳组件。用户改变GridLayout所有管理的窗口的尺寸,用户将会看到GridLayout改变了单元空间的尺寸,使它们在容器的可用空间中尽可能的大。GridLayout是把组件严格限定在网格之中,而且网格尺寸都是一样的,每一组件只能放置于一个网格内。 GridLayout类有两个构造方法,定义如下: public GridLayout(int rows, int columns) public GridLayout(int rows, int columns, int horizontalGap, int verticalGap) 两构造函数中的rows和columns参数指定了行数和列数,它们中必须至少有一个为非零值。第二个构造方法中的horizontalGap和verticalGap参数指定了单元空间之间的间隔(以像素为单位)。如果用户不指定问隔值,它们的默认值为0。 (4)GridBagLayout则要复杂得多,而且灵活性也较大。它不要求每行每列有相同的尺寸,而且组件可以占据多于一个的网格。 |
||||||||||