初步:
AWT(Abstract Window Toolkit)包括了很多类和接口,用于Java Application GUI(Graphics User Interface图形用户界面)编程。
结构图
其中Container 和Component是AWT中的两个核心类
-
Java的图形界面的最基本的组成部分是Component,Component 类及其子类的对象用来描述以图形化的方式显示在屏幕上并且能与用户进行交互的GUI元素例如:按钮,标签。一般Component对象不能独立的显示出来,必须放在某Container对象中才可以显示出
-
Container是Component的子类,Container子类的对象可以容纳其他Component对象(Container也是Component的对象所以Container可以容纳Container)。
-
Container是通过使用方法add(...)向其中添加其他Component对象的。
-
有两种常用的Container : window:自由停泊的顶级窗口;Panel:其对象可以作为容纳其他Component对象,但是不能独立存在,必须被添加到其他 Container中
那么这么多的Compnent如何布局呢?手动指定停泊的位置大小?这样太过于麻烦,Java语言中提供了布局管理器
布局管理器
每个Container对象都有一个布局管理器对象,当容器需要对某个组件进行定位或者判断其大小时,就会调用其对应的布局管理器,调用Container的setLayout方法改变其布局管理器对象
Java提供了5种布局管理器类:FlowLayout, BorderLayout, GridLayout, CardLayout, GridBagLayout
FlowLayout
FlowLayout是Panel类的默认布局管理器:
- FlowLayout布局管理器对组件逐行定位,行内从左到右,一行排满后换行
- 不改变组建的大小,按组件的原有尺寸显示组件,可设置不同组件的间距和对其方式
- FlowLayout布局管理器默认的对其方式是居中
- FlowLayout的构造方法:
new FlowLayout(FlowLayout.RIGHT, 20,40);右对齐,水平间距20个像素,垂直间距40个像素
new FlowLayout(FlowLayout.LEFT);左对齐,水平和垂直间距为缺省值5
new FlowLayout();使用缺省的居中对其放方式,水平和垂直间距为缺省值5
BorderLayout
BorderLayout是Frame类的默认布局管理器
- BorderLayout将整个容器的布局划分成:东(EAST)南(SOUTH)西(WEST)北(NORTH)中(CENTER)五个区域
- 如果不指定组件的加入部位则默认加入到CENTER区。
- 每个区域只能加入一个组件,如果加入多个,则先前加入的会被覆盖。
- BorderLayout 型布局容器尺寸缩放原则:南、北两个区域在水平方向缩放;东、西两个区域在 垂直方向缩放;中部可在两个方向上缩放。
GridLayout
- GridLayout型布局管理器将整个空间划分为规则的矩形网格,每个单元格区域大小相等,组件被添加到每个单元格中,先从左到右添满一行后换行,再从上倒下。
- 在GridLayout构造方法中指定分割的行数和列数。如:GridLayout(3,4)
网友评论