AWT Event Model.

Slides:



Advertisements
Similar presentations
软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
Advertisements

Java 程序分类 Java Application :是完整程序,需要独立的解 释器解释运行;以 “.java” 为后缀的文件,以 main() 方法作为程序入口,由 java 编译器编译生 成字节码,由 Java 解释器加载执行字节码。 Java Applet 没有 main() 方法作为程序入口,是嵌在.
第四章 类、对象和接口.
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
JAVA 编 程 技 术 主编 贾振华 2010年1月.
项目6 通用堆栈.
Java程序设计教程 第一讲 Java概述.
Java程序设计 常州信息职业技术学院(CCIT) 软件学院
四資二甲 第三週作業 物件導向程式設計.
Java System Concepts and Animation Programming
第二十章 圖型介面與網路對播 (GUI and Intercross Transition) 20-1 簡介 20-2 ActionListener Interface 20-3 ActionEvent Class 20-4 Vector Class 20-5 圖型介面與視窗關閉 20-6 圖型介面與資料顯示.
设计模式可以帮助我们改善系统的设计,增强 系统的健壮性、可扩展性,为以后铺平道路。
第11章 Java多媒体技术.
第七章 图形用户界面的设计与实现 学习导读 首先,我们学习一些基本的图形编程知识,包括窗口的显示及外观设置、在窗口中显示文字和图像等;
第6章 图形用户界面设计 6.1 图形用户界面概述 6.2 GUI标准组件的使用 6.3 Java的事件处理 6.4 窗口及菜单设计
第 18 章 圖形使用者介面.
第三部分 Java语言编程应用篇 第6章 Java语言的 图形用户界面开发技术 (之二).
C#程序设计 10软件1、2班 王槐彬 计算机工程学院.
第二章 JAVA语言基础.
類別與物件 Class & Object.
第三部分 Java语言编程应用篇 第6章 Java语言的 图形用户界面开发技术 (之一).
Java语言程序设计 马 皓
Ch06 人機介面_視窗程式設計(2) 物件導向系統分析與設計.
第9章 图形用户界面(GUI)设计.
Ch02 視窗Swing套件 物件導向系統實務.
Java语言程序设计-图形用户界面设计(2)
Ch08 巢狀類別 物件導向程式設計(II).
程式設計實作.
GUI事件处理 主讲:赖国荣 QQ:
第5章 面向对象程序设计 本章要点 5.1 面向对象程序设计概述 5.2 Java语言的面向对象程序设计 5.3 方法的使用和对象数组
JAVA语言程序设计 第9章 图形用户界面 郑 莉.
2018/11/15 面向对象与多线程综合实验-GUI设计 教师:段鹏飞.
Java语言程序设计 第六部分 Java图形用户界面.
Java程序设计 JAVA 授课教师:赵小敏 浙江工业大学 软件学院
Interfaces and Packages
西南科技大学网络教育系列课程 高级语程序设计(Java) 第五章 继承、接口与范型.
电子商务技术基础 张宝明.
程式設計實作.
CH09 套件 物件導向程式設計(II).
記事本 物件導向系統實務.
第九章 窗口、菜单和对话框 本章的任务: 介绍图形用户界面的高级组件。这些组件包括窗口、菜单和对话框等,它们可以构造出标准GUI应用程序。最后,简要介绍Java Swing的使用方法。
职责链模式.
記事本 物件導向系統實務.
Java程序设计 第9章 继承和多态.
JAVA 2 新觀念教本 ---邁向SCJP專業認證--- 易瓏資訊 林新德 著.
SPOTO TM JAVA课程 JAVA中的OO语法
中国矿大计算机学院杨东平 第5章 接口和包 中国矿大计算机学院杨东平
Ch04 事件處理 物件導向系統實務.
CH03 為自己的視窗加上小元件 物件導向系統實務.
4、按钮事件.
Ch02-基礎語法.
CH04 視窗中元件排排坐 物件導向系統實務.
C/C++/Java 哪些值不是头等程序对象
事件處理.
* 單元:電腦與問題解決 主題:Java物件導向程式設計-類別與物件 台南縣國立善化高中 蕭嘉民 老師
西南科技大学网络教育系列课程 高级语程序设计(Java) 第十章 基于Swing的图形用户界面设计.
Multithread 多執行緒 以GUI為例了解物件以及Event
JAVA 编 程 技 术 主编 贾振华 2010年1月.
第五章 事件处理机制 Java 事件处理机制 窗口事件 鼠标事件 键盘事件 例:ButtonTest.java.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
第二章 Java基本语法 讲师:复凡.
第十二章 JFC/Swing 概述  Swing组件  Swing应用程序结构  JComponent类.
第二章 Java基本语法 讲师:复凡.
第6章 面向对象的高级特征 学习目标 本章要点 上机练习 习 题.
第6單元 6-1 類別的繼承 (Class Inheritance) 6-2 抽象類別 (Abstract Class)
辅导课程十二.
JAVA 程式設計與資料結構 第三章 物件的設計.
第二章 Java基础语法 北京传智播客教育
第6章 继承和多态 伍孝金
Summary
Presentation transcript:

AWT Event Model

What is an Event? Event Event Source Event handler 产生事件的对象。 事件,就是发生在用户界面上的用户交互行为所产生的一种效果。 Event Source 产生事件的对象。 Event handler 接收事件对象并对其进行处理的方法。

事件处理模型 Hierachical model(JDK 1.0) 事件传递机制。 Delegation model(JDK 1.1, 1.2) 授权处理机制。

Delegation Model 将事件源对象和事件处理器(事件监听器)分开。

import java.awt.*; import java.awt.event.*; public class TestButton { public static void main(String args[]) { Frame f = new Frame("Test"); Button b = new Button("Press Me!"); b.addActionListener(new ButtonHandler()); f.setLayout(new FlowLayout()); f.add(b); f.setSize(200,100); f.setVisible(true); }

class ButtonHandler implements ActionListener { public void actionPerformed(ActionEvent e) { System.out.println("Action occurred"); }

使用JDK1.1授权处理模型进行事件处理的一般方法: 对于某种类型的事件XXXEvent,要想接收并处理这类事件,必须定义相应的事件监听器类,该类需要实现针对特定事件的特定接口XXXListener; 事件源中产生事件后,必须注册相应于该类事件的监听器,使用addXXXListener(XXXListener )方法来注册监听器。

java.util.EventObject类 public class EventObject implements java.io.Serializable { protected transient Object source; public EventObject(Object source); public Object getSource(); public String toString(); }

java.awt.AWTEvent 和AWT有关的所有事件类都由java.awt.AWTEvent类派生 ,AWT事件共有10类,可以归为两大类:低级事件和高级事件。

低级事件 ComponentEvent(组件事件:组件尺寸的变化,移动) ContainerEvent(容器事件:组件增加,移动) WindowEvent(窗口事件:关闭窗口,窗口闭合,图标化) FocusEvent(焦点事件:焦点的获得和丢失) KeyEvent(键盘事件:键按下、释放) MouseEvent(鼠标事件:鼠标单击,移动)

高级事件(语义事件) ActionEvent(动作事件:按钮按下,TextField中按Enter键) AdjustmentEvent(调节事件:在滚动条上移动滑块以调节数值) ItemEvent(项目事件:选择项目,不选择项目) TextEvent(文本事件,文本对象改变)

AWT事件及其相应的监听器接口 ActionEvent 激活组件 ActionListener actionPerformed(ActionEvent)

ItemEvent 选择了某些项目 ItemListener itemStateChanged(ItemEvent)

MouseEvent 鼠标移动 MouseMotionListener mouseDragged(MouseEvent) mouseMoved(MouseEvent)

MouseEvent 鼠标点击等 MouseListener mousePressed(MouseEvent) mouseReleased(MouseEvent) mouseEntered(MouseEvent) mouseExited(MouseEvent) mouseClicked(MouseEvent)

KeyEvent 键盘输入 KeyListener keyPressed(KeyEvent) keyReleased(KeyEvent) keyTyped(KeyEvent)

FocusEvent 组件收到或失去焦点 FocusListener focusGained(FocusEvent) focusLost(focusEvent)

AdjustementEvent 移动了滚动条等组件 AdjustmentListener adjustmentValueChanged(AdjustmentEvent)

ComponentEvent 对象移动缩放显示隐藏等 ComponentListener componentMoved(ComponentEvent) componentHidden(ComponentEvent) componentResized(ComponentEvent) componentShown(ComponentEvent)

WindowEvent 窗口收到窗口级事件 WindowListener windowClosing(WindowEvent) windowOpened(WindowEvent) windowIconified(WindowEvent) windowDeiconified(WindowEvent) windowClosed(WindowEvent) windowActivated(WindowEvent) windowDeactivated(WindowEvent)

ContainerEvent 容器中增加删除了组件 ContainerListener componentAdded(containerEvent) componentRemoved(containerEvent)

TextEvent 文本字段或文本区发生改变 TextListener textValueChanged(TextEvent)

事件处理举例

import java.awt.*; import java.awt.event.*; public class TwoListen implements MouseMotionListener,MouseListener,WindowListener { private Frame f; private TextField tf; public static void main(String args[]) { TwoListen two = new TwoListen(); two.go(); }

public void go() { f = new Frame("Two listeners example"); f.add(new Label("Click and drag the mouse"),"North"); tf = new TextField(30); f.add(tf,"South"); f.addMouseMotionListener(this); f.addMouseListener(this); f.addWindowListener(this); f.setSize(300,200); f.setVisible(true); }

public void mouseDragged (MouseEvent e) { String s = "Mouse dragging : X="+e.getX()+"Y = "+e.getY(); tf.setText(s); } public void mouseMoved(MouseEvent e){} public void mouseClicked(MouseEvent e){} public void mouseEntered(MouseEvent e){ String s = "The mouse entered";

public void mouseExited(MouseEvent e){ String s = "The mouse has left the building"; tf.setText(s); } public void mousePressed(MouseEvent e){} public void mouseReleased(MouseEvent e){} public void windowClosing(WindowEvent e) { System.exit(1);

public void windowOpened(WindowEvent e) {} public void windowIconified(WindowEvent e) {} public void windowDeiconified(WindowEvent e) {} public void windowClosed(WindowEvent e) {} public void windowActivated(WindowEvent e) {} public void windowDeactivated(WindowEvent e) {} }

事件适配器(Event Adapters) ComponentAdapter(组件适配器) ContainerAdapter(容器适配器) FocusAdapter(焦点适配器) KeyAdapter(键盘适配器) MouseAdapter(鼠标适配器) MouseMotionAdapter(鼠标运动适配器) WindowAdapter(窗口适配器)