java学习篇-------对事件的理解

原创 2015年07月10日 10:51:33
java事件驱动程序====


事件,就是用户的一个操作。
事件就是用户对组件的一个操作。
如何理解事件监听器???


事件监听器调用事件处理方法。
由事件监听器来监听着按钮是否接受来自用户的单击操作。
事件监听器一直在监听。


如何从汇编的角度理解: 事件监听器???






对下面这个程序做详细的分析:






import java.awt.event.*;
import java.awt.*;


public class TestButton
{
public static void main(String[] args)
{
Frame f=new Frame(); //  创建了一个框架对象。
Button bn=new Button("OK!"); // 创建了一个按钮对象。

f.add(bn); // 调用框架的add()方法,把按钮对象,添加到框架中。
A aa=new A();
bn.addActionListener(aa); // 向鼠标按钮添加一个动作监听器。用aa来监听bn按钮。
即:告诉bn可以产生aa事件。
f.pack();
f.setVisible(true);


}


}






class  A implements ActionListener
{
public void actionPerformed(ActionListener)
{
System.out.println("今天天气不错!");
}



}


点击按钮A,则触发的这个点击事件必须,交给按钮A去处理。不然就是造成混乱。


不同的方法,处理不同的事件。








事件的处理步骤:
()
假设事件是XXXA
:
()1.向事件源注册某种事件的事件监听器对象  //  addXXXAListener(..);
()2.设计好可以处理这种事件的事件监听器
class 类名 implements  XXXAListener
{
重写XXXAListener接口中的方法

}

implement  ['ɪmplɪm(ə)nt] 实施,执行;实现,使生效
n. 工具,器具;手段




说明:要想设计出能够处理XXXA事件的监听器,只需要编写出实现XXXAListener接口的类就行啦。
 因为XXXAListener接口中已经定义了可以处理XXXA事件的方法。
 
 
()默认情况下,事件源不会自动产生任何事件,程序员需要做两件事:
:告诉事件源可以地洞产生哪类事件,即:向事件源注册某种事件的事件监听器对象。
:设计好可以处理这种事件的事件监听器。
 
 
 
 当用户对事件源进行操作时,事件源就会自动产生事件,事件源就会自动把产生的事件封装成
一个事件对象,事件源就会自动把封装好的事件对象传递给事件监听器。


事件监听器收到事件源发送过来的事件时,事件监听器就会自动调用相应的事件处理方法来对该事件进行相应的处理。




很重要的一点就是:
什么样的事件,用什么样的方法处理。
即: A class的对象事件,当被触发产生时,编译器就会调用,A class的方法来处理该事件。
根据事件类型,去寻找相应的处理方法。而处理方法是在事件监听器接口中定义的。


其实,事件的处理就是一次函数调用。


用我自己的方式理解事件。
:::
:::
()每个对象都有它的堆栈和运行空间,以及相应的表结构。表中记录有与该对象有关的信息。
而所谓的给某一个源对象注册一个事件,其实就是:在给对象的相应的表结构中,
添加:   事件A   |   事件A的处理方法的函数入口地址
于是,当一个事件A,产生时,那么,给对象通过查表,可以看到该事件A的处理方法函数的入口地址


因此,所谓的注册就是,告诉编译器到那里去找它的处理方法,即:让该组件对象记录下,监听器在内存中的函数入口点地址。


还有一个问题:


如何理解事件监听器接口???















































































用java创建表格的两种形式(1)

eclipse默认编码为GBK,修改为UTF8的方法

eclipse 默认编码居然是GBK,js文件默认编码是ISO-....怎么可以这样呢?都修改成UTF8的方法:1、windows->Preferences...打开"首选项"对话框,左侧导航树,导航...
  • pdw_jsp
  • pdw_jsp
  • 2011年02月28日 13:07
  • 52411

Java + C# 事件机制理解

  • 2016年11月29日 13:03
  • 16KB
  • 下载

从零开始理解JAVA事件处理机制(1)

“事件”这个词已经被滥用了。正因为“事件”的被滥用,很多人在用到事件的时候不求甚解,依样画葫芦,导致学习工作了很多年,还是不清楚什么是事件处理器、什么是事件持有者。所以,如果你对于Event这个词还是...
  • luminji
  • luminji
  • 2017年06月07日 16:27
  • 351

事件驱动模型实例详解(Java篇)

  • 2007年06月30日 13:14
  • 159KB
  • 下载

从零开始理解JAVA事件处理机制(3)

我们连续写了两小节的教师-学生的例子,必然觉得无聊死了,这样的例子我们就是玩上100遍,还是不知道该怎么写真实的代码。那从本节开始,我们开始往真实代码上面去靠拢。 事件最容易理解的例子是鼠标事件:我...
  • luminji
  • luminji
  • 2017年06月07日 16:29
  • 270

对Java和C#事件机制的理解

最近在重新研究c#,发现c#的事件机制和java的事件机制是不同的.原因是c#中的事件是通过委托来实现的,而java中事件是通过适配器来实现的. 在网上搜索些资料时发现博客园Jeffrey Lee的...

JAVA基础 day24 GUI的学习 事件监听机制 编写简易的记事本 jar包双击执行

GUI:图形用户接口JAVA为GUI提供的对象都在java.Awt和javax.Swing两个包里。java.Awt:Abstract Window ToolKit(抽象窗口工具包),需要调用本地系统...

JAVA(学习笔记1.2)——事件处理模型

当用户与GUI组件交互时会引发一个系统预先定义好的事件(鼠标移动,点选按钮,文本输入等),GUI由这些事件驱动。GUI事件是一个从java.awt.event.AWTEvent类扩展的某个子类对象...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java学习篇-------对事件的理解
举报原因:
原因补充:

(最多只允许输入30个字)