第5章 图形用户界面设计与事件处理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Hale Waihona Puke BaiduCSDN
Java程序设计
2013年8月11日星期日
第5章 图形用户界面设计与事件处理
•6•
5.2.1 java.awt包
AWT是使用Java进行GUI设计的基础,AWT包中 包含了很多支持图形用户界面的类与接口,各类 中封装了大量的方法,以方便用户进行图形用户 界面的设计,这些类与接口的主要功能包括:
Java程序设计
2013年8月11日星期日
CSDN
第5章 图形用户界面设计与事件处理
•5•
5.2 AWT及其组件
Java基础类(JFC)主要包括五个API:AWT、 Java2D、Accesssibility、Drag & Drop和 Swing。 它提供了帮助开发人员设计复杂应用程序的一整 套应用程序开发包。其中,AWT组件为各类Java 应用程序提供了许多GUI工具。
(2)按钮
Button(String str) getLabel(); setLabel(String str); 例: ButtonDemo.java
CSDN
Java程序设计
2013年8月11日星期日
第5章 图形用户界面设计与事件处理
• 18 •
(3)文本框
TextField(String str) TextField(int numChars) TextField(String str, int numChars) setText(String str) setEditable(boolean canEdit) setEchoChar(char ch) 例: TextDemo.java
Window类是用来创建不包含其他对象的顶层窗口,其对象 直接位于桌面上,要生成一个窗口,通常是创建Window的 子类Frame的对象,而不直接创建Window对象。 Applet类应用于Applet小程序,在第7章再详细介绍。下面 简单介绍一下Frame类与Panel类。
2013年8月11日星期日
第5章 图形用户界面设计与事件处理
•1•
第5章 图形用户界面设计 与事件处理
CSDN
Java程序设计
2013年8月11日星期日
第5章 图形用户界面设计与事件处理
•2•
5.1 图形用户界面概述
为了方便开发图形用户界面(Graphics User Interface,GUI) ,Java提供了AWT(Abstract Window Toolkit,抽象窗口工具包)和Swing两个 图形用户界面工具包 ,以生成各种标准图形界面 元素和处理图形界面的各种事件,有效地实现图 形用户界面的跨平台移植。
CSDN
Java程序设计
2013年8月11日星期日
第5章 图形用户界面设计与事件处理
• 20 •
(5)下列列表框
add(String name) getItem(int index) getItemCount() select(int index) getSelectedItem() getSelectedIndex() 例:ChoiceDemo.java
CSDN
Java程序设计
2013年8月11日星期日
第5章 图形用户界面设计与事件处理
•3•
AWT
AWT把用户界面元素的创建和操作交给每个目标平台 (Windows、Solaris、Macintosh等)上的本地GUI工 具箱来处理,即对AWT包中的每一个组件都引入一个具 有本地平台显示风格的图形用户界面组件(对等组件), 当程序运行时系统将自动创建一个AWT组件的对等组件, 由它来负责执行该组件在本地的显示和管理工作,使得界 面具有本地平台显示风格(L&F)。 但是AWT非常依赖于运行时平台的本地用户界面组件, 产生的图形用户接口在不同的平台上存在着不同的bug, 并且不能完全确保本地平台显示风格,而且它还限制访问 操作系统中现有的高级GUI元素。
Java程序设计
2013年8月11日星期日
第5章 图形用户界面设计与事件处理
• 13 •
5.2.3 容器
容器Container类是Component抽象类的一个子类,一 个容器可以容纳多个组件,并使它们成为一个整体。容器 的主要功能是容纳其他组件和容器,简化图形化界面的设 计,以整体结构来布置界面。所有的容器都可以通过add() 方法向容器中添加组件。 AWT提供了三种类型的容器:Window,Panel, ScrollPane,常用的有Panel,Frame,Applet。
CSDN
Panel ScrollPane
Applet
GridLayout
GridBagLayou t Component Object
Dialog
Window Frame TextArea TextField
Scrollbar
Menu CheckBoxMenuItem
PopupMenu
JMenuGraphics2D
Java程序设计
2013年8月11日星期日
CSDN
第5章 图形用户界面设计与事件处理
•4•
Swing
1997年Sun公司同Netscape公司通力合作创建了新的图 形用户界面库取名Swing。Swing与AWT的最大区别是, Swing组件的实现没有采用任何本地代码,完全由Java 语言实现,具有平台独立的API并且具有平台独立的实现。 因此Swing组件不再受各种平台显示特征的限制,真正实 现了Sun公司的“一次编写,到处运行”的目标。 Swing包是在AWT包的基础上创建的,但Swing组件的先 进性并不代表着能够完全取代AWT组件。AWT的模式在 很大的程度上影响Swing的模式,甚至某些机制是一致的, 如AWT中的事件处理机制,在Swing中仍然使用。因此 在学习Swing的同时,了解AWT是非常必要的。
AWT中的基本组件
组件描述
按钮 复选框,允许用户选择其中的条目 单选框,只能在一组选项中选择一项 下拉式列表,创建一个下拉式选择列表,只 允许选择其中的一项 列表,支持单选和多选 菜单,一般包含多个菜单项 单行文本框,用来编辑显示单行文本 标签 画布,用来画图的面板 多行文本框,用来编辑显示一个文本块 滚动条
Java程序设计
2013年8月11日星期日
第5章 图形用户界面设计与事件处理
•8•
AWT的类
1.AWTEvent类
AWTEvent类是JDK1.1中所有AWT事件的父类, 它是一个抽象类,其中定义了AWT事件的一般模型 和接口,在实际使用时不能直接使用这个类。 用来表示字体的类,通过它可以在GUI中使用多种 系统支持的字体。
CSDN
Java程序设计
2013年8月11日星期日
第5章 图形用户界面设计与事件处理
• 15 •
2.Panel
Panel(面板)是一块无边框的容器,不能单独显 示,必须添加到Window或Frame中,Panel面板 中可以放入基本组件。它是Applet的父类。
CSDN
Java程序设计
2013年8月11日星期日
第5章 图形用户界面设计与事件处理
• 16 •
常见控件类
(1)标签 Label(String str) setText(String str) getText(); 例: LabelDemo.java
CSDN
Java程序设计
2013年8月11日星期日
第5章 图形用户界面设计与事件处理
• 17 •
Java程序设计
2013年8月11日星期日
CSDN
第5章 图形用户界面设计与事件处理
• 10 •
AWT的类(续二)
5.Graphics类
Graphics类是所有用来在组件上进行图形绘制时所用的图 形上下文的父类,它提供了对组件进行图形绘制的一般方法 的接口,一个Graphics对象中封装了用来进行图形绘制时 必需的状态信息,包括:要绘制的组件对象、当前颜色、当 前字体、当前逻辑点的操作功能,当前XOR方式的替代颜色。 FlowLayout、BorderLayout、GridLayout、CardLayout、 GridBagLayout是布局管理器类。布局管理器是Java语言 中提供专门用来管理组件在容器中布局的工具,它负责组件 在容器中的位置、大小等布局的管理,使用不同的布局管理 器,组件在容器中的位置布局不同。
6.布局管理器类
CSDN
Java程序设计
2013年8月11日星期日
第5章 图形用户界面设计与事件处理
• 11 •
5.2.2 组件
组件是一个可以以图形化的方式显示在屏幕上并能与用户 进行交互的对象,是GUI的基本组成元素。 组成GUI的组件,如按钮(Button)、标签(Label)等, 不能独立显示,必须通过add( )方法将组件放在容器中才 能显示出来。表5-1列出了AWT中的基本组件。
用户界面组件;事件处理模型;图形和图像工具, 包括形状、颜色和字体类;布局管理器,可以进行 灵活的窗口布局而与特定窗口的尺寸和屏幕分辨率 无关;数据传送类,可以通过本地平台的剪贴板来 进行剪切和粘贴。
CSDN
AWT包中主要类及其层次关系如图5-1所示。
Java程序设计
2013年8月11日星期日
第5章 图形用户界面设计与事件处理
2.Font类
CSDN
Java程序设计
2013年8月11日星期日
第5章 图形用户界面设计与事件处理
•9•
AWT的类(续一)
3.Component类(组件类) Component类是一个抽象类,它是构成Java图形用户界面的 基础,大多数组件都是它的子类或间接子类,其中封装了组件 通用的方法和属性,如图形的组件对象、大小、显示位置、前 景色和背景色、边界、可见性等,因此许多组件类也就继承了 Component类的成员方法和成员变量,相应的成员方法包括 getComponentAt(int x,int y)、getFont( )、 getForeground( )、getName( )、getSize( )、 paint(Graphics g)、repaint( )、update(Graphics g)、 setVisible(boolean b)、setSize(Dimension d)、 setName(String name)等。 4.Container类(容器类) 容器Container类是Component类的一个子类,因此容器本身 也是一个组件,具有组件的所有性质,但它的主要功能是容纳 其他组件和容器。
•7•
图5-1 AWT的类层次结构
FlowLayou t BorderLayout
CardLayout Button Canvas Checkbox Container Choice Label List TextComponent AWTEvent Font MenuBar MenuComponent MenuItem ToolKit Graphics
CSDN
Java程序设计
2013年8月11日星期日
第5章 图形用户界面设计与事件处理
• 19 •
(4)复选框
Checkbox(String str) Checkbox(String str, boolean on) getState(); setState(boolean on); 例: CheckboxDemo.java
● Frame( ); // 该方法用于创建一个不带标题的框架 ● Frame(String title); // 该方法用于创建一个带有指定标题 的框架 这两个方法创建的窗口默认初始大小为(0,0),并且不可见, 默认背景色为白色。为了使窗口显示出来,可调用其父类 Component的方法setSize(int width,int height)来设置其 大小;调用setVisible (Boolean b) 方法将其设为可见;调 用setBackground(Color c) 方法来设置背景色。
CSDN
Java程序设计
第5章 图形用户界面设计与事件处理
• 14 •
1.Frame
例:FrameDemo.java
在Java中,每一个GUI应用程序都必须至少有一个顶层窗 口,顶层窗口也称为框架,在AWT中,对应的框架类是 Frame,它是Window类的子类,用来创建带有标题、菜 单的全功能窗口。Frame常用的构造方法有:
CSDN
Java程序设计
2013年8月11日星期日
第5章 图形用户界面设计与事件处理
• 12 •
基本组件 Button CheckBox CheckBoxGroup Choice List Menu TextField Label Canvas TextArea ScrollBar
CSDN
表5-1