GUI事件处理 主讲:赖国荣 QQ:31343080 www.sms98.cn.

Slides:



Advertisements
Similar presentations
网络应用程序设计 2014 JavaBean. JavaBean 及其属性 JavaBean 就是一种 Java 的组件技术 JavaBean 是 Java 类 JavaBean 通过约定的方法名实现属性功能 简单属性 void setXxx(Type value) Type getXxx() boolean.
Advertisements

7.1 内置对象概述及分类 JSP 视频教学课程. JSP2.2 目录 1. 内置对象简介 1. 内置对象简介 2. 内置对象分类 2. 内置对象分类 3. 内置对象按功能区分 3. 内置对象按功能区分 4. 内置对象作用范围 4. 内置对象作用范围.
Java 语言程序设计 第 6 章 Java 图形与事件处理. 本章主要内容: 6.1 图形与图形的描绘 6.1 图形与图形的描绘 图形绘制特点及绘图工具 paint() 图形绘制特点及绘图工具 paint() Graphics 类 Graphics.
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
广州市小学信息技术教学同步资源 第一册 第二章 第六节 《 Window窗口》 广州市荔湾区西华路小学 董绮珊.
图形界面设计 福州大学阳光学院 张海歆.
项目2 字符格式和段落编排 2017年3月7日6时54分.
Java程序设计 常州信息职业技术学院(CCIT) 软件学院
插入超链接 高邮市第一实验小学 范太国 任务一:设置文本超链接 任务一:设置文字超链接 步骤:1、选定文字并右击,在快捷菜单 中选择“超链接”命令。 2、在弹出的对话框中选择左侧“链接到:”中的“本文档中的位置(A)”项,在“请选择文档中的位置(C):”中选择需要链接的幻灯片,单击“确定”按钮。
第四章 Android事件处理机制 QQ群: Q Q号: 倚动软件工厂实验室.
第八讲 图形用户界面与事件处理 1、使用AWT(Abstract Window Toolkit)组件
第6章 图形用户界面设计 6.1 图形用户界面概述 6.2 GUI标准组件的使用 6.3 Java的事件处理 6.4 窗口及菜单设计
4.1 概述 4.2 AWT 与 Swing组件 4.3 事件处理 4.4 容器与布局管理器 4.5 对话框 4.6 菜单
第 18 章 圖形使用者介面.
第14章 c++中的代码重用.
在PHP和MYSQL中实现完美的中文显示
第三部分 Java语言编程应用篇 第6章 Java语言的 图形用户界面开发技术 (之一).
第九章 字符串.
Java语言程序设计 马 皓
Ch06 人機介面_視窗程式設計(2) 物件導向系統分析與設計.
Ch02 視窗Swing套件 物件導向系統實務.
Java语言程序设计-图形用户界面设计(2)
2018/11/11 面向对象与多线程综合实验-GUI设计 教师:段鹏飞.
2018/11/15 面向对象与多线程综合实验-GUI设计 教师:段鹏飞.
Java语言程序设计 第六部分 Java图形用户界面.
Java程序设计 JAVA 授课教师:赵小敏 浙江工业大学 软件学院
第6章回顾 Applet Applet方法 Java Applet也称为小应用程序,嵌入在网页中运行
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
第九章 窗口、菜单和对话框 本章的任务: 介绍图形用户界面的高级组件。这些组件包括窗口、菜单和对话框等,它们可以构造出标准GUI应用程序。最后,简要介绍Java Swing的使用方法。
6.4 Notification 通知栏.
第8章 图形用户界面的设计与实现 本章介绍Java基本的图形编程知识,包括窗口的显示、文字和图像的显示、事件处理以及图形用户界面中常用的组件等内容。 本章要点 8.1 Java图形用户界面概述 8.2 标准组件 8.3 简单图形用户界面 8.4 Java事件处理 8.5 布局管理 8.6.
JAVA 2 新觀念教本 ---邁向SCJP專業認證--- 易瓏資訊 林新德 著.
辅导课程六.
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
AWT Event Model.
Ch04 事件處理 物件導向系統實務.
C/C++/Java 哪些值不是头等程序对象
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
事件處理.
SOA – Experiment 2: Query Classification Web Service
Multithread 多執行緒 以GUI為例了解物件以及Event
JAVA 编 程 技 术 主编 贾振华 2010年1月.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
第五章 事件处理机制 Java 事件处理机制 窗口事件 鼠标事件 键盘事件 例:ButtonTest.java.
$9 泛型基础.
本节内容 随机读取 视频提供:昆山爱达人信息技术有限公司.
实验四、TinyOS执行机制实验 一、实验目的 1、了解tinyos执行机制,实现程序异步处理的方法。
分裂对象模型 C++ otcl.
组件 复选框(Checkbox)可以让用户进行多项选择。复选框有两种状态,分别为“开(on)”和“关(off)”。当用户点中复选框的时候,复选框的状态就会改变。 1、创建复选框 (1)声明复选框。 Checkbox mycheckbox =new Checkbox (); (2)添加复选框。将复选框组件放置到容器中。
第4章 Excel电子表格制作软件 4.4 函数(一).
本节内容 类成员的访问控制 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
iSIGHT 基本培训 使用 Excel的栅栏问题
第六章 素材的加工与处理 第13讲 用GoldWave进行音频的截取、合并、淡入淡出操作
本节内容 文件系统 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Chapter 18 使用GRASP的对象设计示例.
4.6 菜单.
Visual Basic程序设计 第13章 访问数据库
第十二章 JFC/Swing 概述  Swing组件  Swing应用程序结构  JComponent类.
辅导课程十五.
第二章 Java基本语法 讲师:复凡.
MFC控件 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
10 图形用户界面.
组件 组件是构成图形用户界面的各种元素。通过对不同事件的响应来完成和用户的交互或组件之间的交互。组件分为容器(Container)类和非容器类组件两大类。 控制组件有Button按钮 、Checkbox复选矿、 Choice下拉列表、Label标签、List列表、textcomponent文本(TextField文本域.
事件处理 例: import java.applet.Applet; import java.awt.*;
Presentation transcript:

GUI事件处理 主讲:赖国荣 QQ:31343080 www.sms98.cn

回 顾 1、AWT简介 2、容器组件 3、布局管理器 4、常用组件 组件/容器/布局管理器 Frame Panel FlowLayout/GridLayout/BorderLayout 4、常用组件 Button/Label/TextField/List/Choice

目 标 1、AWT事件处理 2、AWT组件库

事件处理机制 事件授权处理机制:对组件注册事件监听,当有某个动作触发了这个该事件后,Java运行时系统将调用对应的方法响应该操作。 事件处理过程中涉及到三类对象: 1、Event-事件。每个事件都对应java中的一个 类。例如键盘操作对应的事件类是KeyEvent。 2、Event Source-事件源。事件发生的场所,通常就是各个组件,例如按钮Button 。 3、Event handler-事件处理者。接收事件对象并对其进行处理的对象。

事件处理机制 刑事事件 处理事件 两个律师“监听”他的不同行为 民事事件 他“授权”给不同的律师 处理不同的事件

事件处理机制 使用授权处理模型进行事件处理的一般方法归纳如下: 1、对于某种类型的事件XXXEvent, 定义相应的事件监听器类,该类需要实现与该事件相对应的接口XXXListener; 2、事件源实例化以后,必须进行授权,注册该类事件的监听器,使用addXXXListener(XXXListener ) 方法来注册监听器。

事件类 AWTEvent-5-1 1、与AWT有关的事件都是java.awt.AWTEvent类派生的。 2、AWT事件分为两大类 : 低级事件:基于组件和容器的事件。 如:鼠标的进入,点击,拖放等,或组件的窗口开关等。 高级事件:基于语义的事件,它不和特定的动作相关联,而依赖于触发此事件的类。 如:TextField中按Enter键会触发ActionEvent事件。滑动滚动条会触发AdjustmentEvent事件。选中项目列表的某一条就会触发ItemEvent事件。

事件类 AWTEvent-5-2 低级事件 高级事件(语义事件) ComponentEvent(组件事件:组件尺寸的变化,移动) ContainerEvent(容器事件:组件增加,移动) WindowEvent(窗口事件:关闭窗口,图标化) FocusEvent(焦点事件:焦点的获得和丢失) KeyEvent(键盘事件:键按下、释放) MouseEvent(鼠标事件:鼠标单击,移动) 高级事件(语义事件) ActionEvent(动作事件:按钮按下) AdjustmentEvent(调节事件:调节滚动条上数值) ItemEvent(项目事件:修改下拉列表中的选项) TextEvent(文本事件:文本对象改变)

事件类 AWTEvent-5-3 FocusEvent包含的事件: 1、FOCUS_FIRST 第一个获得焦点的对象标志符 2、FOCUS_GAINED 确定正获得焦点的组件标志符 3、FOCUS_LAST 最后一个获得焦点的对象标志符 4、FOCUS_LOST 确定失去焦点的组件标志符

事件类 AWTEvent-5-4 Mouse Event包含的事件: MouseMotion Event包含的事件: MOUSE_PRESSED 当鼠标按下时触发该事件 MOUSE_RELEASED 当鼠标释放时触发该事件 MOUSE_CLICKED 当点击鼠标时触发该事件 MOUSE_ENTERED 当鼠标进入指定区域时触发该事件 MOUSE_EXITED 当鼠标退出指定区域时触发该事件 MouseMotion Event包含的事件: MOUSE_MOVED 当鼠标的位置发生改变时触发该事件 MOUSE_DRAGGED 当鼠标按下且位置发生改变时触发该事件

事件类 AWTEvent-5-5 KeyEvent事件包含: KEY_PRESSED 当按下键盘中某个键时触发。 KEY_RELEASED 当释放键盘中按下的键时触发。 KEY_TYPED 确定按下的是那个键值,通常是一个字符,对应pressed事件。

事件监听器-6-1 监听器是接口,根据事件类中定义的动作来定义方法。 AWT中每类事件都有对应的事件监听器。 事件监听器的使用: 1、注册事件监听。 2、在对应的事件监听方法中实现处理操作。

事件监听器-6-2 KeyEvent相对应的接口KeyListener :  public interface KeyListener extends EventListener {    public void keyPressed(KeyEvent ev);    public void keyReleased(KeyEvent ev);    public void keyTyped(KeyEvent ev); }

事件监听器-6-3 Mouse Event对应的接口MouseListener public interface MouseListener extends EventListener { public void mouseClicked(MouseEvent e) ; public void mousePressed(MouseEvent e); public void mouseReleased(MouseEvent e) ; public void mouseEntered(MouseEvent e) ; public void mouseExited(MouseEvent e) ; }

事件监听器-6-4 AWT的组件类中提供注册和注销监听器的方法: 注册监听器: public void add<ListenerType> (<ListenerType>listener); 如:button. addMouseListener(this); 注销监听器: remove<ListenerType> (<ListenerType>listener); 如:button..removeMouseListener(this);

事件监听器-6-5例子ThreeListener.java 例子:ThreeListener.java

事件监听器-6-6总结 1、在一个类中可以实现多个监听接口。 2、可以由同一个对象监听一个事件源上发生的多种事件 。 3、事件处理者和事件源处在同一个类中。 4、可以通过事件对象获得详细资料。

事件适配器Adapter –4-1 1、适配器(adapter)是实现XXXListener接口的抽象类。 3、但当需要多种监听器或该类已经有父类的时候,就不能通过适配器来实现事件监听。

事件适配器Adapter –4-2 java.awt.event包中定义的事件适配器类: 1.ComponentAdapter( 组件适配器) 2.ContainerAdapter( 容器适配器) 3.FocusAdapter( 焦点适配器) 4.KeyAdapter( 键盘适配器) 5.MouseAdapter( 鼠标适配器) 6.MouseMotionAdapter( 鼠标运动适配器) 7.WindowAdapter( 窗口适配器)

事件适配器Adapter –4-3 MouseAdapter鼠标事件适配器类 public abstract class MouseAdapter implements MouseListener { public void mouseClicked(MouseEvent e) { } public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } }

事件适配器Adapter –4-4例子

用内部类实现事件处理-3-1 内部类(inner class)是被定义于另一个类中的类。 使用内部类的主要原因是由于: 一个内部类的对象可访问外部类的成员方法和变量,包括私有的成员。 实现事件监听器时,采用内部类编程非常容易实现其功能。 编写事件驱动程序,内部类很方便。

用内部类实现事件处理-3-2简单内部类例子

用内部类实现事件处理-3-3例子

AWT组件库 –button-3-1 1、按钮(Button) 构造方法是: public Button() public Button(String label) 如: Button b1 = new Button(); Button okb = new Button(“OK”);

AWT组件库 –button-3-2 按钮事件: 1、按钮被点击后,会产生ActionEvent事件,需ActionListener接口进行监听和处理事件。 2、ActionEvent的对象调用getActionCommand()方法可以得到按钮的标识名,缺省按钮名为 labelN。 3、用setActionCommand()可以为按钮设置组件标识符。

AWT组件库 –button-3-3例子

AWT组件库 –Checkbox -4-1 2、复选框( Checkbox)提供简单的“on/off”开关,旁边显示文本标签。 构造函数: public Checkbox() public Checkbox(String label) public Checkbox(String label, boolean state) public Checkbox(String label, boolean state, CheckboxGroup group)

AWT组件库 –Checkbox -4-2 参数说明: 1、 checkbox的默认状态是“off” 。 3、可将多个checkbox放在一个checkboxgroup中当成一组。 4、第四、五两种构造器是一样的,只是 参数位子颠倒。

AWT组件库 –Checkbox -4-3 Checkbox监听事件 复选框用ItemListener 来监听ItemEvent事件 当复选框状态改变时用getStateChange()获取当前状态 使用getItem()获得被修改复选框的字符串对象

AWT组件库 –Checkbox -4-4例子

AWT组件库 –Choice-2-1 3、下拉式菜单(Choice)下拉式菜单每次只能选择其中的一项,它能够节省显示空间,适用于大量选项。 构造函数: public Choice() Choice 用ItemListener接口来进行监听

AWT组件库 –Choice-2-2

AWT组件库 –TextField-2-1 4、单行文本输入区(TextField) 构造函数 public TextField() 创建一个空字符的输入框 public TextField(String text) 用指定的字符串创建一个输入框 public TextField(int colu) 创建一个空的输入框,规定字符长度类似不超过 col指 定的数字。 public TextField(String text, int columns) 用指定的字符串创建一个输入框,规定字符长度 类似不超过 col指定的数字。

AWT组件库 –TextField-2-2 在输入框中按下回车键时,会发生ActionEvent事件,通过ActionListener中的actionPerformed()方法对事件进行相应处理。 setEditable(boolean)方法设置为只读属性。 例如: TextField tf1 = new TextField(); TextField tf2 = new TextField("", 20); TextField tf3 = new TextField("Hello!"); TextField tf4 = new TextField("Hello",30);

AWT组件库 –TextArea 5、文本输入区(TextArea) TextArea可以显示多行多列的文本 用setEditable(boolean)方法,可以设置为只读 可以显示水平或垂直的滚动条。

AWT组件库 –MenuBar & Menu 6、MenuBar只能被添加到Frame对象中,作为整个菜单树的根基。 调用frame的setMenuBar()为一个窗口添加一个菜单条。 Menu 菜单,它可以被添加到MenuBar中或其它Menu中。 MenuItem菜单树中的“叶子节点”,通常被添加到一个Menu中 。 MenuBar和Menu都没有必要注册监听器。 MenuItem通过ActionListener来实现事件监听。

AWT组件库 –MenuBar & Menu

AWT组件库 –其他组件 7、列表(List) 提供了多个文本选项,列表支持滚动 条,可以浏览多项。 8、框架(Frame)Frame是顶级窗口,可以显示标 题,重置大小。 9、对话框(Dialog)它是Window类的子类。对话 框和一般窗口的区别在于它依赖于其它窗口。 10、画布 (Canvas)提供一个空白的区域,可以让 用户继承后自定义组建。

补充资料 各个组件与他们对应的事件监听见 组件与监听器的对应关系图\listener.htm AWT中提供的事件类型以及对应的接口方法 事件类型及其接口和方法\event&interface.htm

总结 1、AWT中提供的两种事件监听处理方法 1、通过实现XXXListener接口 2、通过继承XXXAdapter类