java 事件处理器

一.GUI的设计步骤

1.建立用户界面
  设计一个顶层容器对象,如JFrame
  确定布局,增加组件 
  改变组件颜色、字体

2.增加事件处理 
  编写事件监听器类(内含事件处理方法)
  在事件源上注册事件监听器对象

3.显示用户界面

二.事件处理机制的几个重要概念

1.事件 
  事件是用户在界面上的一个操作(通常使用各种输入设备,如:鼠标、键盘等来完成)。 
  当一个事件发生时,该事件用一个事件对象来表示。事件对象有对应的事件类。不同的事件类描述不同类型的用户动作。事件类包含在java.awt.event和javax.swing.event包中。

2.事件源
  产生事件的组件叫事件源。在一个按钮上单击鼠标时,该按钮就是事件源,会产生一个ActionEvent类型的事件。

3.事件处理器(事件处理方法) 
  事件处理器是一个接收事件对象并进行相应处理的方法。事件处理器包含在一个类中,这个类的对象负责检查事件是否发生,若发生就激活事件处理器进行处理。

4.事件监听器类
  包含事件处理器,并负责检查事件是否发生,若发生就激活事件处理器进行处理的类叫做事件监听器类。其实例就是事件监听器对象。事件监听器类必须实现事件监听器接口或继承事件监听器适配器类。
  事件监听器接口定义了处理事件必须实现的方法。事件监听器适配器类是对事件监听器接口的简单实现。目的是为了减少编程的工作量。
  事件监听器接口和事件监听器适配器类也都包含在java.awt.event和javax.swing.event包中。

5.注册事件监听器
  为了能够让事件监听器检查某个组件(事件源)是否发生了某些事件,并且在发生时激活事件处理器进行相应的处理,必须在事件源上注册事件监听器。这是通过使用事件源组件的以下方法来完成的:
  addXxxListener(事件监听器对象)
  Xxx对应相应的事件类。

三.事件处理机制——委托事件处理

1.

2.事件处理实例:关闭窗口

四.监听器类——MyWindowListener.java


五.图形用户界面——TestFrame.java


六.再论事件处理机制

1.事件、事件监听器接口、事件监听器类:
  每一类事件有一个相应的事件监听器接口,该接口定义了接收和处理事件的抽象方法。实现该接口的类,就是监听器类。其对象可作为监听器对象向相应的组件注册。 
  事件的类名通常为:XxxEvent 
  对应的事件监听器接口名通常为:XxxListener
  一个监听器接口定义了一种以上的抽象事件处理方法(事件处理器)。
  事件监听器类实现事件监听器接口,其类名可以由我们自己取。事件监听器类需要我们自己编写。

2.一个组件可以注册一个或多个监听器对象,事件对象只向已注册的监听器对象报告事件的发生。

七.事件监听器类的编写要点

事件监听器类应该包括以下两部分内容:
1.在事件监听器类的声明中指定要实现的监听器接口名,如:
  public class MyListener implements XxxListener { 
  … }

2.实现监听器接口中的事件处理方法,如:
  public void 事件处理方法名(XxxEvent e) { 
  ...//处理某个事件的代码... } 
  然后,在一个或多个组件上可以进行监听器类的实例的注册。如:组件对象.addXxxListener(MyListener对象);

八.事件处理的编程方法总结

要处理某GUI组件(假定为c)上发生的XXXEvent事件,其通用的编程方法是:
  编写一个监听器类,该监听器类实现了XXXListener接口,(假定监听器类的类名为MyXXXListener);
  在MyXXXListener中的相应事件处理方法中编写事件处理代码(事件处理器)。
  调用GUI组件c的addXXXListener()方法注册事件监听器对象。 c.addXXXListener(new MyXXXListener());
  要处理C上的多种事件,可以编写多个相应的监听器类,进行多次注册。也可以编写一个实现了多个监听器接口的类,进行一次注册。

九.图形用户界面编程技巧

  通常将图形组件作为类的成员;

  将事件监听器类写成GUI类的内部类,方便对组件进行访问。

十.监听器适配器类

1.JAVA中提供了大部分监听器接口的适配器类,其目的是简化事件监听器类的编写,监听器适配器类是对事件监听器接口的简单实现(方法体为空),这样用户可以把自己的监听器类声明为适配器类的子类,从而可以不管其他方法,只需重写需要的方法。 对应于监听器接口XxxListener的适配器接口的类名为XxxAdapter。

2.

十一.事件、接口、适配器与事件处理方法对应表

原文地址:https://www.cnblogs.com/w670973122/p/10829805.html

时间: 2024-08-02 01:17:37

java 事件处理器的相关文章

Java 事件类型集合

Java 事件处理中的概念 事件 :用户界面上的一个操作(例如:使用各种输入设备,如鼠标,键盘等来完成)       当一个事件发生时,该事件用一个***事件对象***来进行表示.事件对象有对应的事件类.       不同的事件类描述不同类型的用户动作.       事件的类名通常为:XxxEvent       事件源: 产生事件的组件 事件处理器:接受事件对象并进行相应处理的方法.            事件处理器包含在一个类(事件监听器类)中,这个类的对象负责检查事件是否发生,      

Java 事件监听器

事件 事件是用户在界面上的一个操作(通常使用各种输入设备,如:鼠标.键盘等来完成). 当一个事件发生时,该事件用一个事件对象来表示.事件对象有对应的事件类.不同的事件类描述不同类型的用户动作.事件类包含在java.awt.event和javax.swing.event包中. 事件源 产生事件的组件叫事件源.在一个按钮上单击鼠标时,该按钮就是事件源,会产生一个ActionEvent类型的事件. 事件处理器(事件处理方法) 事件处理器是一个接收事件对象并进行相应处理的方法.事件处理器包含在一个类中,

Qt中事件处理的方法(三种处理方法,四种覆盖event函数,notify函数,event过滤,事件处理器。然后继续传递给父窗口。可观察QWidget::event的源码,它是虚拟保护函数,可改写)

一.Qt中事件处理的方式 1.事件处理模式一 首先是事件源产生事件,最后是事件处理器对这些事件进行处理.然而也许大家会问, Qt中有这么多类的事件,我们怎么样比较简便的处理每个事件呢?设想,如果是每个事件都对应同一个事件处理器,在该事件处理器中对不同的事件进行分类处理,这样的弊端有两点:第一,导致该事件处理器过于臃肿复杂:第二,这样不便于扩展,当系统新增加事件类型或者是我们需要使用到自定义事件时,就不得不修改Qt的源码来达到目的.所以Qt设计者的做法是针对不同类型的事件提供不同的事件处理器与之对

jQuery事件处理器的绑定及解除方法

前几天用bind()方法做事件绑定的时候发现还有其他几种事件绑定的方法,查阅了之后对比总结一下.内容详情请点链接~欢迎讨论拍砖~ .bind() .bind(eventType [, eventData], handler)    v1.0 给被选元素绑定一个事件处理程序.eventType为事件类型如"click","submit","mousedown"等; eventData为传给handler的数据(注意变量作用域); handler为事

使用Visual Studio在标准Web Part 部件中创建事件处理器

使用Visual Studio在标准Web Part 部件中创建Event Handler 为Web Part部件创建Events是生成Web Parts部件的核心部分.本文主要讲解如何使用Visual Studio在标准Web Part 部件中创建事件处理器. 1. 打开Visual Studio 创建新的空白SharePoint项目SPWebPartEvent,点击确定.部署为场解决方案. 2. 右击项目添加新Web部件SampleEventWebPart.点击确定. 3. 打开Sample

vue事件处理器

1.监听事件 可以用 v-on 指令监听 DOM 事件来触发一些 JavaScript 代码. 示例: <div id="example-1"> <button v-on:click="counter += 1">增加 1</button> <p>这个按钮被点击了 {{ counter }} 次.</p> </div> var example1 = new Vue({ el: '#example

Java事件第2篇

假如现在有一个Button按钮,Button按钮上有click和doubleclick事件.两个不同的事件需要进行不同的处理,这时候就需要为相应的事件注册Listener了.修改后的目录组织结构如下: 1.事件基本类的编写如下: package com.event.test02; public class Event { public String action; // 事件名称 public String message; // 附加说明 /** * @param action * @para

EventEmitter事件处理器中的this问题

JavaScript中的this是一个比较绕的问题,有非常非常多的文章在讲这件事,这里推荐一篇文章,看了这篇文章基本上就能弄明白了. 这篇文章讲了关于this的一个基本原则: 包含this的Function是当作方法调用的,还是当作函数调用? 如果是obj.func()这一类型的,那么就是方法调用,如果是func()这一类型的那么就是函数调用,在方法调用中,this就是obj本身的引用,如果是函数调用,情况就复杂了, 1. 浏览器内 1.1 严格模式下:undefined 1.2 非严格模式下:

Java事件机制

Java事件由事件类和监听接口组成,自定义一个事件前,必须提供一个事件的监听接口以及一个事件类.JAVA中监听接口是继承java.util.EventListener的类,事件类继承java.util.EventObject的类.很多基本的事件系统已经为我们定义好了,我们只要学会调用即可,但是为了更加灵活地满足特定的需求,我们有时候也需要自定义事件. 对于事件的理解:http://lyunabc.iteye.com/blog/1538940这篇博文讲的不错,有助于我们理解事件从产生到处理这一过程