14.1-全栈Java笔记: Java语言中GUI到底是神马鬼?| AWT | Swing

到目前为止,我们在Java中编写的基本都是基于控制台的程序;而Java编程语言之所以如此流行的一个主要原因之一,就是因为它支持图形用户界面功能,即GUI(Graphical User Interface)。

GUI(Graphical User Interface)即图形用户界面,就是应用程序提供给我们用户操作的图形界面,包括窗口、菜单、工具栏及其它多种图形界面元素,如文本框、按钮、列表框、对话框等。它能使应用程序显得更加友好。

学习Java的GUI编程主要是要掌握两个包,分别是:java.awt、javax.swing包,我们将其简称为AWT和Swing,这两个包中包含了GUI编程需要用到的丰富的类库。

其中AWT(Abstract Window Toolkit,抽象窗口工具包)中的组件有限,不能实现GUI编程所需的所有功能,因此Swing作为AWT的拓展应运而生。Swing中不仅提供了AWT所能提供的所有功能,并且用纯粹的Java代码对AWT 的功能进行了大幅度的扩充,所以Swing可以满足GUI编程的所有需求,我们本章也将围绕Swing的基本空间和布局管理器进行讲解。

我们需要注意的是java.awt包中还有一个我们经常用到的子包:java.awt.event,该包提供了处理由 AWT 组件所激发的各类事件的接口和类,我们会在下一章中对其进行详细讲解。
希望大家经过本章内容的学习,可以做到以下几点:
1、了解GUI编程和AWT包及其组件
2、理解AWT和Swing的区别
3、掌握常用的控件
4、理解Java常用布局管理器
5、运用简单Swing控件编写Java图形化应用程序

老鸟建议:
Java语言本身不擅长开发桌面程序,因此,工作中使用AWT和Swing极少。但是,作为Java中的基础技术,初学者有必要了解一点基本知识。

AWT简介
GUI编程的实现,是由一系列图形化组件来完成的,这些GUI的构件被称为控件;
在Java的早期版本中,GUI控件由名为AWT的标准库来提供的。
除了GUI组件外,AWT还包括其它功能来支持图像绘画、处理剪切/复制类型的数据传送,以及其它相关操作。

java.awt包是Java内置的包,属于Java基本类库(JFC)的一部分,其中包括以下内容:
1.便于用户输入的一组丰富的界面组件。
2.将组件放置在适当位置的几中布局管理器。
3.事件处理模型。
4.图形和图像工具等等。
5.要使用到该包中的类,则必须显式地声明如下语句:import java.awt.*;

如图1所示,为java.awt包中控件类的体系结构图。从图中我们可以看出,控件类的父类为Component,其直接或间接子类中有我们在图形界面中所熟悉控件,如:Frame(窗口)、Button(按钮)、Label(标签)、Checkbox(复选框)、TextArea(多行文本框)、TextField(单行文本框)等等。
14.1-全栈Java笔记: Java语言中GUI到底是神马鬼?| AWT | Swing

Swing简介
Swing是在AWT基础上发展而来的轻量级组件,与AWT相比不但改进了用户界面,而且所需的系统资源更少。Swing是纯Java组件,使所有的应用程序在不同的平台上运行时具有和本机外观相同的行为。
14.1-全栈Java笔记: Java语言中GUI到底是神马鬼?| AWT | Swing

javax.swing包中包含了一系列Swing控件,如果要使用该包中的类,则必须显式地声明如下语句:import javax.swing.*;

如图2所示,为javax.swing包中控件类的体系结构图。从图中我们可以看出,该包下大部分控件都继承自java.awt包中的控件,如:JFrame的父类为Frame,JComponent的父类为Component等。

下节我们将针对Swing程序中常用的类和控件进行讲解与代码示例。


「全栈Java笔记」是一部能帮大家从零到一成长为全栈Java工程师系列笔记。笔者江湖人称 Mr. G,10年Java研发经验,曾在神州数码、航天院某所研发中心从事软件设计及研发工作,从小白逐渐做到工程师、高级工程师、架构师。精通Java平台软件开发,精通JAVAEE,熟悉各种流行开发框架。

笔记包含从浅入深的六大部分:
A-Java入门阶段
B-数据库从入门到精通
C-手刃移动前端和Web前端
D-J2EE从了解到实战
E-Java高级框架精解
F-Linux和Hadoop