事件:描述发生了什么的对象

  存在各种不同类型的事件类用来描述各种类型的用户交互。

  事件源:事件的产生器。

  事件处理器:接收事件、解释事件并处理用户交互的方法

  比如在Button组件上点击鼠标会产生以这个Button为源的一个ActionEvent,这个ActionEvent实例是一个对象,它包含关于刚才发生的那个事件的信息,这些信息包括:

  getActionCommand():返回与动作相关联的命令名称。

  getWhen():返回事件发生的时间。

  如果用户在用户界面层执行了一个动作(鼠标点击和按键),这将导致一个事件的发生。

 当单击一个按钮时,就会产生一个事件(ActionEvent),然后检查是否有与该按钮关联的事件处理器(实际上是一个方法),

  如果没有,那么什么都不执行;

  如果有的话,就会将该事件传递给与该按钮关联的事件处理器方法,作为该方法的参数,之后该事件处理方法就会自动得到调用,并且该方法可以使用传递过来的ActionEvent对象,进而获得事件发生时与该事件及事件源相关联的那些信息。

  Java中的组件若想添加事件处理器,都会使用形如addXxxListener()的方法来添加。一个事件源可以添加多个监听器。

      MouseEvent,鼠标事件,鼠标按下、释放、点击等。

  WindowEvent,窗口事件,点击关闭按钮,窗口得到与失去焦点,窗口最小化等。

  ActionEvent,动作事件,不代表具体的动作,是一种语义。如按钮或菜单被鼠标单击,单行文本框中按下回车键等都可以看做是ActionEvent事件。

  如果用户的一个动作导致了某个组件最基本的动作发生了,这就是ActionEvent事件。

  对于每类事件,都会有一个接口(接口一般叫XxxListener),这个接口要求定义一个或多个方法。想接收这个事件的类必须实现这个接口,当发生这些事件时,就会调用这些方法。

  关于事件处理的另一个例子: 

gui2的更多相关文章

  1. Atitit.你这些项目不都是模板吗?不是原创  集成和整合的方式大总结

    Atitit.你这些项目不都是模板吗?不是原创  集成和整合的方式大总结 1.1. 乔布斯的名言:创新即整合(Creativity is just connecting things).1 1.2. ...

  2. Atiti.ui原理与gui理论

    Atiti.ui原理与gui理论 1. 概论2 2. ui的类型2 2.1. RMGUI vs IMGUI2 2.2. Cli2 2.3. Gui2 2.4. Nui natural user int ...

  3. java---Unicode-字符转换器

    实现一个字符(包括汉字)的简单互相转换: package cn.hncu.gui2; import java.awt.Button; import java.awt.Color; import jav ...

  4. python批量下载

    # -*- coding: utf-8 -*-__author__ = 'Administrator'from PyQt4.Qt import *from PyQt4.QtCore import *f ...

  5. MATLAB中文论坛帖子整理(GUI)

    MATLAB中文论坛帖子整理(GUI) 目   录  1.GUI新手之——教你读懂GUI的M文件... 10 2.GUI程序中改变current directory引起的问题... 15 3.GUI中 ...

  6. 从零开始学习UNITY3D(GUI篇 群组视图控件)

    控件组可以看成一个大的容器,控件组里面的控件,相对位置已该控件组为基准,而不再已屏幕左上角为基准. 下面来看一下代码实例及其效果截图: public class GUI2 : MonoBehaviou ...

  7. 从零开始学习UNITY3D(GUI篇 2)

    复合控件极其使用,toolbar,selectgrid 先看效果图: toolbar可以看作是一个button按钮的集合,一次只能点击一个按钮, selectgrid又可以堪称是一个toolbar的集 ...

  8. 在自己的服务器上安装GitBook

    更新时间:2016-08-05 更新说明: 由于在 Linux 内核的机器上安装 Calibre 需要安装的依赖库过多,故不推荐在此类机器上使用格式转换功能.你可以阅读 在自己的电脑上安装GitBoo ...

  9. Java学习——Applet写字符串(调字体)

    import java.awt.*; import java.applet.Applet; public class GUI2 extends Applet{ public void paint(Gr ...

随机推荐

  1. [置顶] Android 2016新技术

    版权声明:分享技术,传播快乐.如果本博客对你有帮助,请在我的博客首页为我打赏吧! 2016你需要了解Android有以下新兴的技术与框架,有些也许还不成熟,但是你应该去了解下,也许就是未来的方向. K ...

  2. knockout.js 简介

    Knockout是一个轻量级的UI类库,通过应用MVVM模式使JavaScript前端UI简单化. Knockout有如下4大重要概念: 声明式绑定 (Declarative Bindings):使用 ...

  3. 【Java讨论】引用类型赋值为null对加速垃圾回收的作用(转载)

    :有一些人认为等于null可以帮助垃圾回收机制早点发现并标识对象是垃圾.其他人则认为这没有任何帮助.是否赋值为null的问题首先在方法的内部被人提起.现在,为了更好的阐述提出的问题,我们来撰写一个Wi ...

  4. Python学习路程CMDB

    本节内容 浅谈ITIL CMDB介绍 Django自定义用户认证 Restful 规范 资产管理功能开发 浅谈ITIL TIL即IT基础架构库(Information Technology Infra ...

  5. 在oracle中通过connect by prior来实现递归查询!

    注明:该文章为引用别人的文章,链接为:http://blog.csdn.net/apicescn/article/details/1510922 ,本人记录下来只是为了方便查看 原文: connect ...

  6. System.arrayCopy()和普通数组复制之间的效率差别

    都是System.arrayCopy() 效率高,到底有多高呢,拉出来遛遛就知道了: package JCF.ArrayList; import java.util.Date; public clas ...

  7. Question Of Rabbit

    题目描述 f(n) = GCD(1, n) + GCD(2, n) + GCD(3, n) + ~ ~ ~ + GCD(n - 1, n). 输入 每行一个整数N (1 < N < 400 ...

  8. TableView遇到的问题

    1.所建立的TableView滑动不到底部的问题: tableView继承scrollerView,当tableview开始建立的时候,会先计算每个cell的高度和每个headerview的高度.fo ...

  9. BZOJ 1597 土地购买

    斜率优化... #include<iostream> #include<cstdio> #include<cstring> #include<algorith ...

  10. centos7下安装nodejs

    http://www.runoob.com/nodejs/nodejs-install-setup.html这个教程中注明 注意:Linux上安装Node.js需要安装Python 2.6 或 2.7 ...