模块4 图形用户界面 --- 第十二章:创建图形用户界面
第十二章 创建图形用户界面
主要知识点
1、图形用户界面的主要特征
2、AWT组件的一般功能
3、Frame类和Panel类的用法
4、窗口布局管理
学习目标
掌握图形用户界面(GUI)的组件构成,主要容器的功能以及组件布局管理方法,能够运用AWT的基本组件设计图形用户界面。图形用户界面提供了所见即所得的功能。方便了用户的操作,成为软件设计的通用标准。Java语言提供了设计图形用户界面所需要的基本组件,这些组件可以设计出功能强大的GUI软件。
12.1 分析图形用户界面特征
抽象窗口工具包AWT是一组Java类,GUI通过键盘或鼠标响应用户的操作。Java GUI的基本组成部件是Component类及子类的对象。
12.1.1 AWT 组件的一般功能
java.awt包的核心类是Component(组件)类,它是构成图形用户界面的基础。所有其它组件都是这个类派生出来的,但是Component类是一个抽象类,不能直接使用,要通过其子类才能实例化。
Component类定义了AWT组件的一般功能,包括4个方面:
(1)组件的大小和位置可以控制:通过组件提供的一组方法来设置,例如,setSize()设置大小,setLocation()确定位置;也可以放置组件的容器的布局管理器制指定。
(2)组件的外形可以控制:setFont()设置字体、getFont()返回字体、setForeground()设置前景颜色、setBackGround()设置背景颜色。
(3)基本绘图功能的支持:通过一系列方法支持基本绘图功能。例如:paint()用于在屏幕上绘制图形或输出文本内容。repaint()通过调用update()清除背景后,重新绘画或输出文本。
(4)组件的状态可以控制:用于控制组件状态的方法有:setEnable()设置本组件是否可以改变状态。
Panel、Window、Applet、Frame是四种常见的容器,Dialog(对话框)也是一种容器。用于防止AWT组件。
12.1.2 AWT的基本组件
AWT的基本组件主要包括:
(1)Button:最常规的组件,则需要实现相关的鼠标事件。
(2)Checkbox:检查框,也称复选框,只有选中和未选中两种状态。
(3)RadioButton:单选按钮,单选按钮的实现需要利用Checkbox和复选组CheckboxGroup两个类来完成。
(4)Label:标签,是一种最简单的组件,用于输出文件信息。
(5)Choice:选项框,又称为下拉列表框,系统可以提供许多选项。
(6)List:列表框,可以让用户选择多个选项。
(7)TextField:文本框,用于显示或接受用户键盘输入的单行文本信息,不能显示多行。
(8)TextArea:文本区域,用于显示或接受用户键盘输入的多行文本信息,这些信息可以修改,行数可以设置。
(9)Canvas:画布,也称为画板,是专门用来绘画的构件。
(10)Dialog:对话框,是一种特殊的窗口,可以包括若干组件,其大小不可以改变,也不可以最小化。
12.2 创建图形界面容器
容器(Container)和组件(Component)是AWT的核心内容,组件通常是GUI的可见部分。一个容器可以放多个组件,也可以放其他容器。容器是可以存放的区域。可以在容器上进行绘制和着色。java.awt包中的container类可以直接或间接派生出两个常用容器:框架(Frame)和面板(Panel)
12.2.1 Frame框架类
框架Frame是Window类的子类,是一个带边框的独立窗口。独立于Applet和浏览器窗口。可以通过以下任一构造方法来创建:
(1)Frame():创建一个没有标题的标准窗口。
(2)Frame(String Title):创建一个含有标题的窗口,标题是由参数Title来指定的。
PS:在显示的窗口中,“最大化”和“最小化“按钮均有效,但是“关闭”按钮无效,即窗口不能关闭,强行关闭Eclipse才能关闭此框架窗口,如果希望框架窗口能够利用“关闭”按钮正常关闭,需要先注册窗口监听器接口Window Listener 并实现对象的抽象方法WindowClosing。
12.2.2 Panel面板类
是包含窗口的一个不带边框的区域,不是一个单独的窗口,只是包含在窗口中的一个区域,是可以将许多组件组合起来的一种容器。必须将面板添加到窗体中才能正常显示出来。面板的构造方法:
(1)Panel():建立一个新面板,采用默认的布局管理器。
(2)Panel(LayoutManager layout):建立一个新面板,采用指定的布局管理器。从构造方法可以看出,面板没有标题,它由布局管理器进行布局管理。
12.3 布局图形界面组件
当组件很多时,窗口会显得非常凌乱,用户可以通过窗口的缩放进行手工调整,但是效果不是特别好,最好的方法是运行窗口布局管理器实现自动管理。
12.3.1 FlowLayout 顺序布局管理器
组件逐个放置在容器的一行中,一行满后另起一行。
12.3.2 BorderLayout 边界布局管理器
放置组件时,必须从这五种方向中选择其一以靠近窗口的边界。
12.3.3 GridLayout 网格布局管理器
网格布局管理器用于将容器区域划分为一个矩形网格,其组件按照行和列排序。每个组件占一个网格。
习题
一、简答题
1、什么是AWT?AWT的基本思想是什么?
2、容器的主要作用有哪些?java中有哪些常用的容器?他们之间有什么异同?
3、布局管理器的作用是什么?java提供了哪几种布局管理器?
4、设计和实现图形用户界面的主要工作有哪些?
5、简述Frame和Panel的异同。
6、AWT的基本组件有哪些?一般有哪些功能?
7、流式布局与网格布局有什么不同?
二、操作题
1、编写代码,创建标题为“基本GUI编程”的窗口。
2、编写代码,创建标题为“使用面板的基本GUI编程”的面板。

浙公网安备 33010602011771号