第十一章 GUI程序设计
Java技术支持GUI程序设计,在JDK中提供了丰富的与GUI设计相关的API,主要分为AWT和Swing两大系列,两者间存在紧密联系而非完全独立,其运行原理(事件处理机制)是完全相同的。
一、抽象窗口工具包
1、 java.awt包:提供基本GUI组件、视觉控制和绘图工具等API;
2、 java.awt.event包:提供java GUI 事件处理API。
二、组件和容器:组件是图形用户界面的基本组成元素,凡是能够以图形化方式显示在屏幕上并能够与用户进行交互的对象均为组件。
1、 我们将那些能够包含其他AWT组件称为容器。容器类对象本身也是一个组件,具有组件的所有性质,但反过来组件不一定是容器。
2、 Java.awt.Window:描述的是一个没有边框和菜单栏、可自由停靠的顶层容器,一般不直接使用该类而是使用其子类Frame。
3、 Java.awt.Panel:不能独立存在,必须被添加到其他容器中。
三、布局管理器:容器对其中所包含组件的排列方式,包括组件的位置和大小的决定,被称为容器的布局。所谓布局管理器是指系统事先定义好的若干容器布局效果,如流式布局、边框布局和网格布局等。每一个容器都有默认的布局管理器,在创建一个容器对象时,同时也会创建一个相应的默认布局管理器对象,用户也可以随时为容器创建和设置新的布局管理器。
1、 FlowLayout:也称“流式布局”,是Panel(及其子类)类型容器的默认布局管理器类型,具体布局效果为:组件在容器中按照加入次序逐行定位,行内从左到右,一行排满后换行。不会改变组件尺寸,即按照组件原始大小进行显示;组件间的对其方式默认为居中对齐。Frame 默认的大小为刚好容纳下标题条和最小(大)化、关闭按钮,setSize()可设置Frame大小。
2、 Frame窗口默认是不可见的,可使用setVisible(true|false)方法使之可见或隐藏。
3、 组件在容器中的摆放位置由布局管理器决定,Frame使用setLayout()方法可以设置窗口的布局。
4、 BorderLayout也称“边界布局”,是window及其子类(包括Frame、Dialog)类型容器的默认布局管理器类型。具体布局效果为:将整个容器分为东、西、南、北、中5个区域。
5、 frame的默认布局理器被取消,人工设置了panel的尺寸大小和在容器中的位置;
6、 setSize()方法用于设置组件尺寸大小,即宽度和高度,单位为像素;
7、 setLocation()方法用于设置组件在容器中的位置,即组件的左上角,即组件的左上角顶点坐标,单位也是像素。
8、 各个GUI容器都拥有自己的坐标系统(计算机的显示器屏幕也是一种GUI容器)
9、 构造方法
public BorderLayout()
public BorderLayout(int hgap,int vgap)