GUI(图形用户界面)>GUi全称是GraphicalUserInterface,即图形用户界面。顾名思义,就是应用程序提供给用户操作的图形界面,包括窗口、菜单、按钮、工具栏和其他各种图形界面元素。目前,图形用户界面已经成为一种趋势,几乎所有的程序设计语言都提供了GUI设计功能。Java中针对GUI设计提供了丰富的类库,这些类分别位于java.awt和javax.swing包中,简称为AWT和Swing。其中,AWT是SUN公司最早推出的一套API,它需要利用本地操作系统所提供的图形库,属于重量级组件,不跨平台,它的组件种类有限,可以提供基本的GUI设计工具,却无法实现目前GUI设计所需的所有功能。随后,SUN公司对AWT进行改进,提供了Swing组件,Swing组件由纯Java语言编写,属于轻量级组件,可跨平台,Swing不仅实现了AWT中的所有功能,而且提供了更加丰富的组件和功能,足以满足GUI设计的一切需求。Swing会用到AWT中的许多知识,掌握了AWT,学习Swing就变成了一件很容易的事情,因此本章将从AWT开始学习图形用户界面
✎ ➢ GUI全称是Graphical User Interface,即图形用户界面。顾名思义,就是应用程 序提供给用户操作的图形界面,包括窗口、菜单、按钮、工具栏和其他各种图 形界面元素。目前,图形用户界面已经成为一种趋势,几乎所有的程序设计语 言都提供了GUI设计功能。Java中针对GUI设计提供了丰富的类库,这些类分别 位于java.awt和javax.swing包中,简称为AWT和Swing。其中,AWT是SUN公司最 早推出的一套API,它需要利用本地操作系统所提供的图形库,属于重量级组 件,不跨平台,它的组件种类有限,可以提供基本的GUI设计工具,却无法实 现目前GUI设计所需的所有功能。随后,SUN公司对AWT进行改进,提供了 Swing组件,Swing组件由纯Java语言编写,属于轻量级组件,可跨平台,Swing 不仅实现了AWT中的所有功能,而且提供了更加丰富的组件和功能,足以满足 GUI设计的一切需求。Swing会用到AWT中的许多知识,掌握了AWT,学习Swing 就变成了一件很容易的事情,因此本章将从AWT开始学习图形用户界面。 GUI(图形用户界面)
8.1AWT概述>AWT是用于创建图形用户界面的一个工具包,它提供了一系列用于实现图形界面的组件,如窗口、按钮、文本框、对话框等。在JDK中针对每个组件都提供了对应的Java类,这些类都位于java.awt包中,接下来通过一个图例来描述这些类的继承关系,如图所示。>从图的继承关系可以看出,在AWT中组件分为两大类,这两类的基类分别是Component和MenuComponent。其中,MenuComponent是所有与菜单相关组件的父类,Component则是除菜单外其他AWT组件的父类,它表示一个能以图形化方式显示出来,并可与用户交互的对象
✎ ➢ AWT是用于创建图形用户界面的一个工具包,它提供了一系列用于实现图形界 面的组件,如窗口、按钮、文本框、对话框等。在JDK中针对每个组件都提供 了对应的Java类,这些类都位于java.awt包中,接下来通过一个图例来描述这些 类的继承关系,如图所示。 ➢ 从图的继承关系可以看出,在AWT中组件分为两大类,这两类的基类分别是 Component和MenuComponent。其中,MenuComponent是所有与菜单相关组 件的父类,Component则是除菜单外其他AWT组件的父类,它表示一个能以图 形化方式显示出来,并可与用户交互的对象。 8.1 AWT概述
8.1AWT概述>Component类通常被称为组件,根据component的不同作用,可将其分为基本组件类和容器类。基本组件类是诸如按钮、文本框之类的图形界面元素,而容器类则是通过Component的子类Container实例化的对象。Container类表示容器,它是一种特殊的组件,可以用来容纳其他组件。Container容器又分为两种类型分别是Window和Panel,接下来对两种类型进行详细讲解。1.Window>Window类是不依赖其他容器而独立存在的容器,它有两个子类,分别是Frame类和Dialog类。Frame类用于创建一个具有标题栏的框架窗口,作为程序的主界面,Dialog类用于创建一个对话框,实现与用户的信息交互,如图所示。XDialog对话框确定要删除这个文件么?确定取消
✎ ➢ Component类通常被称为组件,根据Component的不同作用,可将其分为基本 组件类和容器类。基本组件类是诸如按钮、文本框之类的图形界面元素,而容 器类则是通过Component的子类Container实例化的对象。Container类表示容器, 它是一种特殊的组件,可以用来容纳其他组件。Container容器又分为两种类型, 分别是Window和Panel,接下来对两种类型进行详细讲解。 1.Window ➢ Window类是不依赖其他容器而独立存在的容器,它有两个子类,分别是Frame 类和Dialog类。Frame类用于创建一个具有标题栏的框架窗口,作为程序的主界 面,Dialog类用于创建一个对话框,实现与用户的信息交互,如图所示。 8.1 AWT概述
8.1AWT概述2.Panel>Panel也是一个容器,但是它不能单独存在,只能存在其他容器(Window或其子类)中,一个Panel对象代表了一个长方形的区域,在这个区域中可以容纳其他组件。在程序中通常会使用Panel来实现一些特殊的布局。案例代码了解了AWT组件的相关类后,为了使读者对GUI有一个更直观的认识,接下来通过一个案例来创建一个简单的图形界面,请查看教材文件8-1
✎ 2.Panel ➢ Panel也是一个容器,但是它不能单独存在,只能存在其他容器(Window或其 子类)中,一个Panel对象代表了一个长方形的区域,在这个区域中可以容纳 其他组件。在程序中通常会使用Panel来实现一些特殊的布局。 了解了AWT组件的相关类后,为了使读者对GUI有一个更直观的认识, 接下来通过一个案例来创建一个简单的图形界面,请查看教材文件8-1。 案例代码 8.1 AWT概述
8.2布局管理器>8.1小节提到过,组件不能单独存在,必须放置于容器当中,而组件在容器中的位置和尺寸是由布局管理器来决定的。在java.awt包中提供了五种布局管理器,分别是FlowLayout(流式布局管理器)、BorderLayout(边界布局管理器)GridLayout(网格布局管理器)、GridBagLayout(网格包布局管理器)和CardLayout(卡片布局管理器)。每个容器在创建时都会使用一种默认的布局管理器,在程序中可以通过调用容器对象的setLayout()方法设置布局管理器通过布局管理器来自动进行组件的布局管理。例如把一个Frame窗体的布局管理器设置为FlowLayout,代码如下所示:Frameframe=newFrameO:+frame.setlayout(newFlowLayout)+
✎ ➢ 8.1小节提到过,组件不能单独存在,必须放置于容器当中,而组件在容器中 的位置和尺寸是由布局管理器来决定的。在java.awt包中提供了五种布局管理 器,分别是FlowLayout(流式布局管理器)、BorderLayout(边界布局管理器)、 GridLayout(网格布局管理器)、GridBagLayout(网格包布局管理器)和 CardLayout(卡片布局管理器)。每个容器在创建时都会使用一种默认的布局 管理器,在程序中可以通过调用容器对象的setLayout()方法设置布局管理器, 通过布局管理器来自动进行组件的布局管理。例如把一个Frame窗体的布局管 理器设置为FlowLayout,代码如下所示: 8.2 布局管理器