1、1布局管理布局管理引言java1.4不允许基本组件直接被加入到顶级容器中 ,以后的版本 ,基本组件即使允许被直接加入到顶级容器中 ,其中的 组件也会互相覆盖 ,影响使用。为了设计美观合理的界面,则需要进一步考虑如何设计和控制组件在容器中的位置和相互关系,就需要学习 布局设计的知识 。在 java的 GUI应用程序界面设计中,布局控制是通过为容器设置 布局管理器 来实现的。23本节学习目标:u 理解 JAVA中布局管理器的功能u 五种布局管理器各有什么特点u 如何在程序中使用布局管理器4一、布局管理器l Java.awt包中定义了 5种布局管理类,每一种布局管理类对应一种布局策略。l 每个容器都
2、有缺省的布局管理器。l 当一个容器选定一种布局策略时,它应该创建该策略对应的布局管理器的对象,并将此对象设置为自己的布局管理器。5Java中 的布局类型有五种:( 1) FlowLayout: 流式布局 (Applet和 Panel的默认布局管理器)( 2) BorderLayout: 边框布局 ( Window、 Frame和 Dialog的默认布局管理器) ( 3) GridLayout: 网格布局( 4) GridBagLayout: 网格包布局( 5) CardLayout :卡片布局1、布局管理器的种类62、如何设置布局l 每个容器都有一个与它相关的缺省的布局管理器。l 在没有设置新
3、的布局前,在容器中添加组件都按照该容器的缺省布局排列。 l 可以通过 setLayout( )方法为容器设置新的布局。 格式 :容器组件名 .setLayout( 布局类对象名 )7二、 FlowLayout (流式布局管理器 )Flow布局管理器用于对组件逐行地定位,每完成一行,一个新行便又开始。与其他布局管理器不一样的是, Flow布局管理器不限制它所管理的组件的大小,允许它们有自己的最佳大小。FlowLayout的构造函数有 :l FlowLayout( ):生成一个默认的流式布局l FlowLayout(int alignment):可以设定每一行组件的对齐方式 (FlowLayout
4、.LEFT, FlowLayout.CENTER, FlowLayout.RIGHT)l FlowLayout(int alignment,int horz,int vert):可以设定组件间的水平和垂直距离(缺省时组件之间没有空隙)8举例:public class Labeltest public static void main(String args ) Frame frm=new Frame(“Label class“); Label lab1=new Label (“Hello Java1“, Label.RIGHT); Label lab2=new Label (“Hello Ja
5、va2“, Label.CENTER); FlowLayout Flow1=new FlowLayout(FlowLayout.CENTER);frm.setSize(200,150); lab1.setBackground(Color.yellow); lab1.setForeground(Color.blue); lab2.setBackground(Color.blue); lab2.setForeground(Color.yellow); frm.add(lab1); frm.add(lab2); frm.setLayout(Flow1);frm.setVisible(true); 9三、 BorderLayout (边界布局管理器)l 窗口、框架和对话框等的缺省布局。l 组件可被置于容器的北、南、东、西或中间位置。l 如果扩大窗口,用户将会看到中心区域会尽可能的扩大,而其他区域只扩大到容纳组件所需空间的大小。10BorderLayout的使用方法:l 设置容器的布局管理器为 BorderLayout ;l 向容器中加入组件时,用户必须使用两个参数的add()方法,而且第一个参数必须为 “North”、“South”、 “East”、 “West”或 “Center”。