模块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编程”的面板。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能