为了使我们生成的图形用户界面具有良好的平台无关性,Java语言中,提供了布局管理器这个工具来管理 组件在容器中的布局,而不使用直接设置组件位置。组件类是创建用户界面的,例如,JButton,JLabel和JTextField。容器类是用来包含其他组件的,例如,JFrame,JPanel和JApplet。辅助类是用来支持GUI组件的,例如,Graphics,Color,Font,FontMetrics和Dimension。
一、组件类
Component 类的实例可以显示在屏幕上。Component类是包括容器类的所有用户界面的根类,而JComponent类是所有轻量级Swing组件类的根类。Component和JComponent都是抽象类。
二、容器类
一个Container的实例可以包含Component实例。容器类是用于盛装其他GUI组件的GUI组件。Window,Panel,Applet,Frame和Dialog都是AWT组件的容器类。要使用Swing组件做容器,可以使用下表的Container,JFrame,JDialog,JApplet和JPanel.
三、GUI辅助类
辅助类都不是Component的子类,例如,Graphics,Color,Font,FontMetrics,Dimension和LayoutManager等。它们用来描述GUI组件的属性,例如,图形的内容,颜色,字体以及大小尺寸等。
四、布局管理器
FlowLayout 是最简单的布局管理器。按照组件添加的顺序,从左到右地将组件排列在容器中。当放满一行时,就开始新的一行。可以使用三个常量FlowLayout.RIGHT,FlowLayout.CENTER和FlowLayout.LEFT之一来指定组件的对齐方式。还可以指定组件之间以像素为单位的间隔。布局管理器的属性可以动态的改变。FlowLayout具有属性alignment,hgap和vgap。可以使用setAlignment,setHgap和setVgap方法来表明对齐方式,水平间隔和垂直间隔。GridLayout具有属性rows,columns,hgap和vgap。可以使用setRows,setColumns,setHgap和setVgap方法来指定行数,列数以及水平间隔和垂直间隔。BorderLayout具有属性hgap和vgap。可以使用setHgap和setVgap方法来指定水平间隔和垂直间隔。 如果需要动态地改变布局管理器的属性,布局管理器必须使用一个变量显示的引用。然后,可以通过这个变量来改变布局管理器的属性。使用面板作为子容器假设要在框架中放置是个按钮和一个文本域。按钮以网格形式放置,文本域单独占一行。如果将所由这些组件放在一个单独的容器中,是很难达到要求的视觉效果的。使用Java图形用户界面进行程序设计,可以将一个窗口分成几个面板。面板的作用就是分组放置用户界面组件的子容器。可以将这些按钮添加到一个面板中,然后再将这个面板添加到框架中。 面板的Swing版本是JPanel.可以使用new JPanel()创建一个带默认FlowLayout管理器的面板,也可以使用new JPanel(LayoutManager)创建一个带特定布局管理器的面板。使用add(Component)方法可以向面板添加一个组件。