SWT图形界面开发(第1章)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
为非可视化组件。
31
AWT作为Java开发工具包(JDK)的组成部分,是Java基
本类(JFC)的核心,主要是为用户提供“基本的界面组件”。
AWT包含四个主要的类:
●
组件类(Component) 容器类(Container) 图形类(Graphics)
●
●
●
布局管理器类(LayoutManager)
图标---表示数据内容或与数据相关联的应用程序的图形标志;
按钮---以图形所表示的利用程度高的命令。
10
GUI的准则
● ● ●
减少用户的认知负担; 保持界面的一致性; 满足不同目标用户的创意需求;
●
● ● ● ● ● ● ●
用户界面友好性;
图标识别平衡性; 图标功能的一致性;
建立界面与用户的互动交流;
按钮、菜单等组件。
17
AWT对等模式理解示意图
×
Java AWT 窗体组件 对话框组件 按钮组件 菜单组件 Windows操作系统 窗体组件 对话框组件 按钮组件 菜单组件
API API API API
18
所以用AWT构造的Java应用程序,在Windows系统上
运行将保持Windows的GUI风格,而拿到Sun工作站上运行
(lightweight components)”替代AWT中的重量组件。
轻量组件是不具有对等体的组件,且是完全透明的(non-opaque)。 实际上,轻量组件是通过Java绘图技术,在其所处的“容器”上绘 图得到的(画出来的),因此轻量组件可以实现绘图的效果,容易实现在 不同操作系统平台上表现的一致性。而且组件的绘制和事件处理开销比
。
因此,AWT首先需要经过通用的Java技术来控制图形、
事件等,然后Java虚拟机再将请求传送到当前平台的“图形
和组件接口”去交互。 (显示)
22
两个概念
◆
Java虚拟机
Java Virtual Machine,简称JVM。 JVM是一个想象中的机器,在实际的计算机上通过软件模拟来实现。
其有自己想象中的硬件(如处理器、堆栈、寄存器等),还具有相应的指 令系统。
1997年SUN和Netscape合作推出了JFC(Java Foundation
Classes)---Java基础类库。 JFC专指用于创建图形用户界面的Java API,包括AWT 、Java2D API(二维绘图API)、Swing组件集。
28
JFC 的 核 心 部 分 是 Swing 用 户 界 面 组 件 , 使 用 大 量 “ 轻 量 组 件
32来自百度文库
◆
◆
◆
◆
组件类(Component) ---包含菜单、按钮、列表等组件的抽象基本类。 容器类(Container) ---扩展Component的抽象基本类。 ---由Container派生的类有Panel、Applet、Window、Dialog 、Frame类等。(在容器中可以包含多个组件) 图形类(Graphics) ---定义组件内图形操作的基本类。 每个组件都有一个相关的图形对象。 布局管理器类(LayoutManager) ---定义容器中组件的位臵和尺寸的接口。 (Java中定义了几种默认的布局管理器)
调用底层操作系统的功能来独立绘制(显示),相当于在屏幕
上开凿了许多个独立的窗口,因此没有办法实现组件的透明 效果。
而且重量组件受到底层平台对等组件的限制,毕竟只是
封装和调用了现有的组件,因此具有严重的平台相关性,即 在不同操作系统上显示同一组件有可能不一致。
27
正是由于AWT对等模式的体系结构存在的问题,不能完 全保证在各种平台上组件的“外观和感觉”都一样。因此,
●
● ● ● ● ● ●
视窗---应用程序为使用数据而在图形用户界面中设臵的基本单元;
单一文件界面---一个数据在一个窗口内完成的方式。(切换) 多文件界面---在一个窗口内进行多个数据管理的方式; 标签---多文件界面的数据管理方式中使用的一种界面;(数据标题) 菜单---将系统可以执行的命令以层次方式显示出来的一种界面;
30
可视化组件
凡是能够看得见,或有一定形状、尺寸、显示效果的组
件,都可称为可视化组件。 相对于可视化组件也可以引入非可视化组件,不过非可 视化组件应用较少,如我们在AWT工具集中使用的布局管理 器FlowLayout、BorderLayout等,它们也起到了组件或组
件在容器内布局的角色,但由于本身是不可见的,所以称之
则将具有Motif图形用户界面的风格……。
---通过对等体构造与平台无关的GUI。
19
AWT对等模式结构关系图
对等设计模式:通过Java封装的API,将AWT组件直接对应到当前
运行平台上的一个“等同或类似”的组件上。
20
21
AWT对等模式的作用
在不同系统平台的“两个控件之间”建立一个相互作用
的联系,而充当纽带的则是Java虚拟机和虚拟机-GDI的接口
制,系统中都已经封装好了,我们只需要做简单的调用即可。
我们需要了解的是在Java中可以使用什么界面组件库,
是一种还是有很多种呢,下面我们来作个简单介绍。
13
三大GUI组件库
Java世界中,目前最知名的三大GUI库分别是:
1、AWT(Abstract Window Toolkit ) ---抽象窗口工具集,包含于所有的Java SDK中。 2、Swing高级图形库 ---Java开发工具集,包含于Java2 SDK中(JDK); ---JDK正式名称为J2SDK(Java2 Software Develop Kit)。 3、SWT (Standard Widget Toolkit ) ---标准窗口部件库; ---来自于IBM Eclipse开源,不包含于JDK中; ---需要从Eclipse单独下载。
◆
GDI
Graphics Device Interface,图形设备接口。
负责系统与绘图程序之间的信息交换,处理所有程序在当前平台上的
图形输出。
23
Java虚拟机的特点
Java语言的一个重要特点:与平台的无关性。
---使用Java虚拟机是实现这一特点的关键。 一般的高级语言如果要在不同的平台上运行,至少需要编译成不同 的目标代码。 引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新 编译。这是因为Java虚拟机屏蔽了与具体平台相关的信息,使Java语言 的编译程序只需生成在Java虚拟机上运行的目标代码(字节码),即可在 多种平台上不加修改地运行。 Java 虚拟机在执行字节码时,将字节码解释成具体平台上的机器指 令予以执行。
重量组件小得多,因而轻量组件可以实现较高的程序运行效率。
29
由于轻量组件不是自己“单独占有一个窗口”,最终还是要包含或
绘 制 在 别 的 组 件 上 , 因 此 Swing 组 件 中 几 个 顶 级 容 器 , 如 JFrame 、 JDialog、JApplet等都采用了重量组件作为顶级窗体,而其它都采用轻 量组件。 我们从组件的运行效果上肉眼看不出有什么不同,但在实际开发中 ,除了顶层容器只能采用这种重量组件之外,内部并不建议重量或轻量 组件的混用(不提倡AWT和Swing的组件混用),因为这样会导致兼容 性的问题。
子系统1(模块1)
接口设计
子系统n(模块n)
理解:一些预先定义的函数,是提供应用程序与开发人员以访问
例程的能力,而又无需访问源码。(内部工作机制的细节)
12
JAVA图形界面设计开发工具概述
当前,我们操作计算机或使用各类软件时,在屏幕上能
看到各种各样的“界面”,它们都是由各种各样的“组件”
构成的,每一种组件都有自身的绘制方式,这些组件怎么绘
33
表:AWT中的软件包
34
AWT类间的关系
组件类、容器类、布局管理器类构成了AWT中的简单基础关系。 ◆ 容器中可以包含组件; ◆ 所有的容器都包含布局管理器,用来指定容器中组件的位臵和形状。 ◆ 图形类提供在组件中显示文本和图形的方法。
AWT中许多操作都发生在组件、容器和布局管理器之间。
35
最初的AWT只包含重量组件,重量组件除拥有本地对等 体特点外,另一个明显特点是一个不透明的矩形区域( opaque rectangular region),因此它将覆盖屏幕上该区域 内的图形和组件。
26
AWT中的组件都是重量组件,或者说AWT组件都是对本 地操作系统对等组件的“封装”。 重量组件的缺陷是开销大、效率低,每个组件都要单独
6
●
命令行界面
7
图形用户界面
8
GUI特点
GUI的广泛应用是计算机发展的重大成就之一, 极大 方便了操作,使得不再需要死记硬背大量的操作命令。 取而代之的是:通过窗口、菜单、鼠标、按钮等方式 来方便地进行软件操作。 另外,还有“嵌入式”GUI。
9
GUI的组成
●
桌面---界面中的最底层(顶层容器),可设臵背景;
SWT
图形用户界面设计
SWT 图形用户界面设计
2
选用教材
原书名: SWT: A Developer's Notebook 原出版社: O'Reilly 作者: (美)Tim Hatton 译者: O'Reilly Taiwan公司 出版社:东南大学出版社
3
参考教材
Eclipse SWT/Jface核心应用 作者:强锋科技、那静 出版社:清华大学出版社
14
一、AWT介绍
◆
出现于Java1.x中,是Java初期所内臵的一种面向窗口应 用的库,作为JDK的一部分,是Java基本类(JFC)的核心;
◆
在Java1.0中,AWT最初的设计目标:提供一个用来建立图
形用户界面的独立平台,辅助程序员构造一个通用的GUI, 使其在所有平台上都能正常显示(与平台无关),但这个目
① AWT组件类
组件(Component)是图形用户界面的基本组成元素,
凡是能以图形化方式显示在屏幕上,并能够与用户进行交互 (被用户操作)的对象都是组件。 如:菜单、按钮、标签、文本框、滚动条等。 组件不能独立显示出来,必须将组件放在一定的容器中 才可以显示出来。
优点:这套组件的种类较少,速度较快(显示效率较高)。
既然AWT需要调用操作系统的界面组件,由此引出一个 概念---对等模式(对等体、对等组件)。
16
2、AWT的对等模式
◆ 图形用户界面的跨平台移植比较困难 ---在不同系统平台上创建的组件,外观和感觉(look&feel)不一样。 ◆ AWT采用对等设计模式 ---对每个组件(抽象组件)都引入一个对等体(peer)。 对等体:一种具有“本地”外观和感觉的GUI组件,负责本地计算 机 的显示和管理工作,听从抽象组件的指挥。 或者通俗的说,对等组件就是指底层平台(如Windows操作系统)所 实现的图形用户界面组件,因为操作系统本身也提供了窗体、对话框、
标并没有很好的实现;
◆
这种情况从Java1.1以后得到较大改进,并且从Java1.2开 始,AWT添加了被称为“Swing”的新GUI库。
15
1、AWT的特点
通过对操作系统自身的界面组件实现,来完成界面渲染,
即本质上是调用操作系统“自身提供”的界面组件库。
我们知道,操作系统很多界面组件库是由C或C++编写的, Java本身不能直接调用。为了能方便调用,在Java中已封装 成相关API,直接调用即可,变得相对简单一些。
人性化的视觉优化; 识别性的图标及其它元素; 可操控性和扩充性的易用性; 企业品牌特色的视觉识别性。
11
◆
API(Application Programming Interface )
含义:应用程序接口; 说明:软件系统中,不同组成部分之间衔接的约定;
软件 规模
分解 依赖 耦合 内聚 移植 维护 扩展
4
课程学习基础
◆
Java编程经验; 操作系统、软件工程等知识;
◆
◆
面向对象概念。
5
先导知识
◆
GUI(Graphical User Interface)
含义:图形用户界面或图形用户接口; 说明:● 以图形方式显示的用户操作界面。
●
与早期命令行界面相比,在视觉上更易于接受。 目前大多数操作系统、面向对象的开发工具、 众多应用系统等均采用了GUI。
24
4、AWT对等模式的缺陷
因为AWT通过“虚拟机”和“虚拟机-GDI”两个层次来 完成一个操作,经过的交互层次较多,速度和效率较慢。 因此,AWT对等模式的致命弱点:
效率不高,移植性差!
25
5、AWT的组件
具 有 对 等 体 的 组 件 称 为 “ 重 量 组 件 (heavyweight
components)”。
31
AWT作为Java开发工具包(JDK)的组成部分,是Java基
本类(JFC)的核心,主要是为用户提供“基本的界面组件”。
AWT包含四个主要的类:
●
组件类(Component) 容器类(Container) 图形类(Graphics)
●
●
●
布局管理器类(LayoutManager)
图标---表示数据内容或与数据相关联的应用程序的图形标志;
按钮---以图形所表示的利用程度高的命令。
10
GUI的准则
● ● ●
减少用户的认知负担; 保持界面的一致性; 满足不同目标用户的创意需求;
●
● ● ● ● ● ● ●
用户界面友好性;
图标识别平衡性; 图标功能的一致性;
建立界面与用户的互动交流;
按钮、菜单等组件。
17
AWT对等模式理解示意图
×
Java AWT 窗体组件 对话框组件 按钮组件 菜单组件 Windows操作系统 窗体组件 对话框组件 按钮组件 菜单组件
API API API API
18
所以用AWT构造的Java应用程序,在Windows系统上
运行将保持Windows的GUI风格,而拿到Sun工作站上运行
(lightweight components)”替代AWT中的重量组件。
轻量组件是不具有对等体的组件,且是完全透明的(non-opaque)。 实际上,轻量组件是通过Java绘图技术,在其所处的“容器”上绘 图得到的(画出来的),因此轻量组件可以实现绘图的效果,容易实现在 不同操作系统平台上表现的一致性。而且组件的绘制和事件处理开销比
。
因此,AWT首先需要经过通用的Java技术来控制图形、
事件等,然后Java虚拟机再将请求传送到当前平台的“图形
和组件接口”去交互。 (显示)
22
两个概念
◆
Java虚拟机
Java Virtual Machine,简称JVM。 JVM是一个想象中的机器,在实际的计算机上通过软件模拟来实现。
其有自己想象中的硬件(如处理器、堆栈、寄存器等),还具有相应的指 令系统。
1997年SUN和Netscape合作推出了JFC(Java Foundation
Classes)---Java基础类库。 JFC专指用于创建图形用户界面的Java API,包括AWT 、Java2D API(二维绘图API)、Swing组件集。
28
JFC 的 核 心 部 分 是 Swing 用 户 界 面 组 件 , 使 用 大 量 “ 轻 量 组 件
32来自百度文库
◆
◆
◆
◆
组件类(Component) ---包含菜单、按钮、列表等组件的抽象基本类。 容器类(Container) ---扩展Component的抽象基本类。 ---由Container派生的类有Panel、Applet、Window、Dialog 、Frame类等。(在容器中可以包含多个组件) 图形类(Graphics) ---定义组件内图形操作的基本类。 每个组件都有一个相关的图形对象。 布局管理器类(LayoutManager) ---定义容器中组件的位臵和尺寸的接口。 (Java中定义了几种默认的布局管理器)
调用底层操作系统的功能来独立绘制(显示),相当于在屏幕
上开凿了许多个独立的窗口,因此没有办法实现组件的透明 效果。
而且重量组件受到底层平台对等组件的限制,毕竟只是
封装和调用了现有的组件,因此具有严重的平台相关性,即 在不同操作系统上显示同一组件有可能不一致。
27
正是由于AWT对等模式的体系结构存在的问题,不能完 全保证在各种平台上组件的“外观和感觉”都一样。因此,
●
● ● ● ● ● ●
视窗---应用程序为使用数据而在图形用户界面中设臵的基本单元;
单一文件界面---一个数据在一个窗口内完成的方式。(切换) 多文件界面---在一个窗口内进行多个数据管理的方式; 标签---多文件界面的数据管理方式中使用的一种界面;(数据标题) 菜单---将系统可以执行的命令以层次方式显示出来的一种界面;
30
可视化组件
凡是能够看得见,或有一定形状、尺寸、显示效果的组
件,都可称为可视化组件。 相对于可视化组件也可以引入非可视化组件,不过非可 视化组件应用较少,如我们在AWT工具集中使用的布局管理 器FlowLayout、BorderLayout等,它们也起到了组件或组
件在容器内布局的角色,但由于本身是不可见的,所以称之
则将具有Motif图形用户界面的风格……。
---通过对等体构造与平台无关的GUI。
19
AWT对等模式结构关系图
对等设计模式:通过Java封装的API,将AWT组件直接对应到当前
运行平台上的一个“等同或类似”的组件上。
20
21
AWT对等模式的作用
在不同系统平台的“两个控件之间”建立一个相互作用
的联系,而充当纽带的则是Java虚拟机和虚拟机-GDI的接口
制,系统中都已经封装好了,我们只需要做简单的调用即可。
我们需要了解的是在Java中可以使用什么界面组件库,
是一种还是有很多种呢,下面我们来作个简单介绍。
13
三大GUI组件库
Java世界中,目前最知名的三大GUI库分别是:
1、AWT(Abstract Window Toolkit ) ---抽象窗口工具集,包含于所有的Java SDK中。 2、Swing高级图形库 ---Java开发工具集,包含于Java2 SDK中(JDK); ---JDK正式名称为J2SDK(Java2 Software Develop Kit)。 3、SWT (Standard Widget Toolkit ) ---标准窗口部件库; ---来自于IBM Eclipse开源,不包含于JDK中; ---需要从Eclipse单独下载。
◆
GDI
Graphics Device Interface,图形设备接口。
负责系统与绘图程序之间的信息交换,处理所有程序在当前平台上的
图形输出。
23
Java虚拟机的特点
Java语言的一个重要特点:与平台的无关性。
---使用Java虚拟机是实现这一特点的关键。 一般的高级语言如果要在不同的平台上运行,至少需要编译成不同 的目标代码。 引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新 编译。这是因为Java虚拟机屏蔽了与具体平台相关的信息,使Java语言 的编译程序只需生成在Java虚拟机上运行的目标代码(字节码),即可在 多种平台上不加修改地运行。 Java 虚拟机在执行字节码时,将字节码解释成具体平台上的机器指 令予以执行。
重量组件小得多,因而轻量组件可以实现较高的程序运行效率。
29
由于轻量组件不是自己“单独占有一个窗口”,最终还是要包含或
绘 制 在 别 的 组 件 上 , 因 此 Swing 组 件 中 几 个 顶 级 容 器 , 如 JFrame 、 JDialog、JApplet等都采用了重量组件作为顶级窗体,而其它都采用轻 量组件。 我们从组件的运行效果上肉眼看不出有什么不同,但在实际开发中 ,除了顶层容器只能采用这种重量组件之外,内部并不建议重量或轻量 组件的混用(不提倡AWT和Swing的组件混用),因为这样会导致兼容 性的问题。
子系统1(模块1)
接口设计
子系统n(模块n)
理解:一些预先定义的函数,是提供应用程序与开发人员以访问
例程的能力,而又无需访问源码。(内部工作机制的细节)
12
JAVA图形界面设计开发工具概述
当前,我们操作计算机或使用各类软件时,在屏幕上能
看到各种各样的“界面”,它们都是由各种各样的“组件”
构成的,每一种组件都有自身的绘制方式,这些组件怎么绘
33
表:AWT中的软件包
34
AWT类间的关系
组件类、容器类、布局管理器类构成了AWT中的简单基础关系。 ◆ 容器中可以包含组件; ◆ 所有的容器都包含布局管理器,用来指定容器中组件的位臵和形状。 ◆ 图形类提供在组件中显示文本和图形的方法。
AWT中许多操作都发生在组件、容器和布局管理器之间。
35
最初的AWT只包含重量组件,重量组件除拥有本地对等 体特点外,另一个明显特点是一个不透明的矩形区域( opaque rectangular region),因此它将覆盖屏幕上该区域 内的图形和组件。
26
AWT中的组件都是重量组件,或者说AWT组件都是对本 地操作系统对等组件的“封装”。 重量组件的缺陷是开销大、效率低,每个组件都要单独
6
●
命令行界面
7
图形用户界面
8
GUI特点
GUI的广泛应用是计算机发展的重大成就之一, 极大 方便了操作,使得不再需要死记硬背大量的操作命令。 取而代之的是:通过窗口、菜单、鼠标、按钮等方式 来方便地进行软件操作。 另外,还有“嵌入式”GUI。
9
GUI的组成
●
桌面---界面中的最底层(顶层容器),可设臵背景;
SWT
图形用户界面设计
SWT 图形用户界面设计
2
选用教材
原书名: SWT: A Developer's Notebook 原出版社: O'Reilly 作者: (美)Tim Hatton 译者: O'Reilly Taiwan公司 出版社:东南大学出版社
3
参考教材
Eclipse SWT/Jface核心应用 作者:强锋科技、那静 出版社:清华大学出版社
14
一、AWT介绍
◆
出现于Java1.x中,是Java初期所内臵的一种面向窗口应 用的库,作为JDK的一部分,是Java基本类(JFC)的核心;
◆
在Java1.0中,AWT最初的设计目标:提供一个用来建立图
形用户界面的独立平台,辅助程序员构造一个通用的GUI, 使其在所有平台上都能正常显示(与平台无关),但这个目
① AWT组件类
组件(Component)是图形用户界面的基本组成元素,
凡是能以图形化方式显示在屏幕上,并能够与用户进行交互 (被用户操作)的对象都是组件。 如:菜单、按钮、标签、文本框、滚动条等。 组件不能独立显示出来,必须将组件放在一定的容器中 才可以显示出来。
优点:这套组件的种类较少,速度较快(显示效率较高)。
既然AWT需要调用操作系统的界面组件,由此引出一个 概念---对等模式(对等体、对等组件)。
16
2、AWT的对等模式
◆ 图形用户界面的跨平台移植比较困难 ---在不同系统平台上创建的组件,外观和感觉(look&feel)不一样。 ◆ AWT采用对等设计模式 ---对每个组件(抽象组件)都引入一个对等体(peer)。 对等体:一种具有“本地”外观和感觉的GUI组件,负责本地计算 机 的显示和管理工作,听从抽象组件的指挥。 或者通俗的说,对等组件就是指底层平台(如Windows操作系统)所 实现的图形用户界面组件,因为操作系统本身也提供了窗体、对话框、
标并没有很好的实现;
◆
这种情况从Java1.1以后得到较大改进,并且从Java1.2开 始,AWT添加了被称为“Swing”的新GUI库。
15
1、AWT的特点
通过对操作系统自身的界面组件实现,来完成界面渲染,
即本质上是调用操作系统“自身提供”的界面组件库。
我们知道,操作系统很多界面组件库是由C或C++编写的, Java本身不能直接调用。为了能方便调用,在Java中已封装 成相关API,直接调用即可,变得相对简单一些。
人性化的视觉优化; 识别性的图标及其它元素; 可操控性和扩充性的易用性; 企业品牌特色的视觉识别性。
11
◆
API(Application Programming Interface )
含义:应用程序接口; 说明:软件系统中,不同组成部分之间衔接的约定;
软件 规模
分解 依赖 耦合 内聚 移植 维护 扩展
4
课程学习基础
◆
Java编程经验; 操作系统、软件工程等知识;
◆
◆
面向对象概念。
5
先导知识
◆
GUI(Graphical User Interface)
含义:图形用户界面或图形用户接口; 说明:● 以图形方式显示的用户操作界面。
●
与早期命令行界面相比,在视觉上更易于接受。 目前大多数操作系统、面向对象的开发工具、 众多应用系统等均采用了GUI。
24
4、AWT对等模式的缺陷
因为AWT通过“虚拟机”和“虚拟机-GDI”两个层次来 完成一个操作,经过的交互层次较多,速度和效率较慢。 因此,AWT对等模式的致命弱点:
效率不高,移植性差!
25
5、AWT的组件
具 有 对 等 体 的 组 件 称 为 “ 重 量 组 件 (heavyweight
components)”。