前言
图形用户界面设计是程序设计的重要组成部分,界面设计的功能性、简洁性、方便性、友好性是衡量一个应用程序实现人机交互能力的重要指标。Java语言提供了丰富的组件来完成界面设计,并通过事件机制实现功能处理。
一、抽象窗口工具集AWT
1、概念
图形用户界面(GUI)是实现人机交互的窗口,用户使用图形界面可以非常方便地进行操作和数据处理。Java早期提供的抽象窗口工具集(AWT)中包括了图形用户界面设计的基本类库,它是Java设计GUI的核心,为用户提供基本的界面组件。这些类都放在java.awt包中。
总结:是Java提供的用来建立和设置Java的图形用户界面的基本工具。
2、Component类结构
3、组件
AWT由java.awt包提供,里面包含了许多可用来建立与平台无关的GUI的类,这些类又被称为组件。
4、AWT的组成
AWT主要由以下4个部分组成:
①Component(组件)
按钮、标签、菜单等组件。
②Container(容器)
扩展组件的抽象类,如Window、Panel、Frame等。
③LayoutManager(布局管理器)
定义容器中各组件的放置位置和大小等。
④Graphics(图形类)
与图形处理相关的类。
二、Swing组件
1、出现
早期的AWT组件有重大的缺陷----本身是个重量级组件,耗费资源多,其开发的图形用户界面依赖于本地系统,在一个系统上开发的图形用户界面迁移到另一个系统界面会有所变化,失去了统一的风格。
为此,Swing组件是为了解决这些缺陷而出现。
总结:Swing组件是在AWT组件基础上发展而来的轻量级组件。
2、该组件都放在javax.swing包中。
3、javax.swing包中的JComponent类是java.awt包中Container类的一个直接子类。
对比两个图可以发现,javax.swing包中很多类与java.awt包中的类是对应的关系,只是在相关名称前加了一个“J”字符,其功能相同,但是性能有很大差异,在程序设计时应优先使用javax.swing包中的类。
三、组件与事件
1、组件
①Java是以组件的形式进行界面设计的,即界面中的每一个组成部分都是一个组件,如按钮、菜单、文本框、窗口等。这些组件直接或间接继承自Component类;
②Container容器类是一个特殊的组件,它用于承载和显示其他组件,这些组件按照一定的顺序或位置装入容器,然后才能显示和使用。
2、事件机制
当组件装入容器中并不能够直接工作,例如界面中设计了一个按钮,但是这个按钮并不知道要做什么,只有将这个按钮与要完成的功能连接起来,才能实现具体的功能。这就是Java的事件机制。
3、事件
一个事件分为事件源、监听器和事件处理机制。
仍以按钮为例,一个按钮就是一个事件源,它可以产生“单击按钮”事件。但什么时间点击按钮并不知道,所以还需要有个“监听”这个按钮的监听器对象。当监听器对象监听到“单击按钮”这个事件后,就通知相应的时间处理程序完成对应的功能,从而实现一次事件的处理。
编者注
本文只是对GUI进行概念上蓝图的构造,对GUI有个概念,后续文章将深入对GUI进行分析。
后续将分为:
- 窗口定义和使用
- 常用组件
- 常用容器
- 时间处理机制
停更此系列!