事件模型的介绍与Button的ActionListener

事件监听:

这是个很重要的概念,也是个很重要的模型,vb,vc都是这样用,甚至后面学的web框架也在用。    现在我们可以做很多按钮了吧,但是我们的按钮按它是没反应的,现在我们来看看怎么样才能让它有反应。

先看个例子:

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

public class TestActionEvent {
    public static void main(String[] args) {
        Frame f = new Frame("Test");
        Button b = new Button("Press me!");
        Monitor bh = new Monitor();
        b.addActionListener(bh);//把这个监听器添加到button上面
        f.add(b,BorderLayout.CENTER);
        f.pack();//窗口包围按钮
        f.setVisible(true);
    }
}

class Monitor implements ActionListener {
    public void actionPerformed(ActionEvent e) { //重写了接口ActionListener的这个方法
        System.out.println("a Button has been pressed!");
    }
}

这里的button一按,就会调用监听的这个方法,你想一下如果想让它一按就自动执行,是不是要把方法名告诉它,可是人家的button怎么知道你的方法名呢?     办法是这样的,方法实现某一接口,然后button里面也照着这个接口来调用实际当中的对象。  所以它不用知道它调的是哪个类的哪个方法,你只要实现了这个接口,它只要调用接口里的方法就行了。

事件源对象,也就是发生这件事的component的。

事件有很多种,比如按鼠标啊,拖动鼠标什么的,所以监听的这件事的要求你实现的接口也要分好多种,你想监听某件事,就得实现某个接口。 事件和监听这个事件的接口一一对应。

注册,是个动作,把自己的监听器的某一个对象,注册到我们的事件源对象上,事件源对象就知道有谁在监听我了。

还有一个细节,当某个事情发生的时候,这件事具体的信息要告诉监听器吧,比如点鼠标,点哪哪弹出个对话窗口,你要告诉监听器我特么点的坐标在哪吧。  所以当某件事发生的时候你必须把这件事封装成一个对象作为参数传递给我监听器的接口的里面那个特定的方法。

所以看这句代码:      public void actionPerformed(ActionEvent e)

这个方法有个参数e,关于这件事的具体信息系统会把它包装成对象传递到e里面。

btutton按下去的时候它发生的这件事叫做actionEvent,然后monitor实现的actionListener是这个事件对应的接口。

下面这个是一个监听器监听两个按钮:

有人会问这里这个监听器怎么区分呢?                                                                                 看这个   b2.setActionCommand("game over");     在button这个类里面有个属性叫acctionCommand,这句话就是把b2的actioncommand设成gameover。

b1没有设这个actionCommand,那么它默认的就是它的名字。那有人又问了,不能直接用名字来区分吗?可是现实中往往有这样的情况,两个按钮的名字都是"关闭"。所以这里我们有个区分方法就是把一个actionCommand设为别的另一个actionCommand也设成不同的。这是其中的一个区分方法(但不是特别好)

时间: 2024-10-19 18:40:34

事件模型的介绍与Button的ActionListener的相关文章

仅用原生JavaScript手写DOM事件模型

前言 前段时间博客园里有篇很火的帖子2016十家公司前端面试小记,主要讲作者的前端求职面试经历,其中提到了面试官会考察手写一个简单的事件模型: "如果上述都ok的话,那么极有可能要求让你[实现事件模型],即写一个类或是一个模块,有两个函数,一个bind一个trigger,分别实现绑定事件和触发事件,核心需求就是可以对某一个事件名称绑定多个事件响应函数,然后触发这个事件名称时,依次按绑定顺序触发相应的响应函数." 如果了解观察者模式,那么事件模型应该不算太难.本着深入钻研的精神,我试着来

JavaSE学习56:GUI编程之事件模型(一)

一事件概述 事件监听示意图: (1)事件 用户对程序的某一种功能性操作.Java中的事件类都包含在JDK的Java.awt.event包中. Java中的事件主要有两种: 1)组件类事件:componentEvent.ContainerEvent.WindowEvent.FocusEvent.PaintEvent.MouseEvent共 六大类, 它们均是当组件的状态发生变化时产生. 2)动作类事件:ActionEvent.TextEvent.AdjustmentEvent.ItemEvent共

ExtJS框架基础:事件模型及其常用功能

前言 工作中用ExtJS有一段时间了,Ext丰富的UI组件大大的提高了开发B/S应用的效率.虽然近期工作中天天都用到ExtJS,但很少对ExtJS框架原理性的东西进行过深入学习,这两天花了些时间学习了下.我并不推荐大家去研究ExtJS框架的源码,虽然可以学习其中的思想和原理,但太浪费精力了,除非你要自己写框架. 对于ExtJS这种框架,非遇到"杂症"的时候我觉得也没必要去研究其源码和底层的原理,对其一些机制大致有个概念,懂得怎么用就行,这也是本篇博文的主要目的. Ext自己的事件机制

Javascript事件模型系列(一)事件及事件的三种模型

转载: http://www.cnblogs.com/lvdabao/p/3265870.html 一.开篇 在学习javascript之初,就在网上看过不少介绍javascript事件的文章,毕竟是js基础中的基础,文章零零散散有不少,但遗憾的是没有看到比较全面的系列文章.犹记得去年这个时候,参加百度的实习生面试,被问到事件模型,当时被问的一头雾水,平时敲onclick敲的挺爽,却没有关注到事件模型的整体概念.这个周末难得清闲,决定就javascript中的事件模型写个系列,算是对知识点的一个

轻松学习JavaScript二十七:DOM编程学习之事件模型

在介绍事件模型之前,我们先来看什么是事件和什么是event对象. 一事件介绍 JavaScript事件是由訪问Web页面的用户引起的一系列操作,使我们有能力创建动态页面.事件是能够被 JavaScript侦測到的行为. 网页中的每一个元素都能够产生某些能够触发JavaScript函数的事件.例如说.我们能够在用 户点击某button时产生一个onclick事件来触发某个函数.事件在HTML页面中定义:事件通常与函数配合使用,当事件 发生时函数才会运行:事件一般用于浏览器和用户操作进行交互. 我们

15.1-全栈Java笔记:Java事件模型是什么?事件控制的过程有哪几步??

应用前边两节上一章节的内容,大家可以完成一个简单的界面,但是没有任何的功能,界面完全是静态的,如果要实现具体功能的话,必须要学习事件模型. 事件模型简介及常见事件模型 对于采用了图形用户界面的程序来说,事件控制是非常重要的. 一个源(事件源)产生一个事件并把它(事件对象)送到一个或多个监听器那里,监听器只是简单地等待,直到它收到一个事件,一旦事件被接收,监听器将处理这些事件. 一个事件源必须注册监听器以便监听器可以接收关于一个特定事件的通知. 每种类型的事件都有其自己的注册方法,一般形式为: v

【repost】JavaScript 事件模型 事件处理机制

什么是事件? 事件(Event)是JavaScript应用跳动的心脏 ,也是把所有东西粘在一起的胶水.当我们与浏览器中 Web 页面进行某些类型的交互时,事件就发生了.事件可能是用户在某些内容上的点击.鼠标经过某个特定元素或按下键盘上的某些按键.事件还可能是 Web 浏览器中发生的事情,比如说某个 Web 页面加载完成,或者是用户滚动窗口或改变窗口大小. 通过使用 JavaScript ,你可以监听特定事件的发生,并规定让某些事件发生以对这些事件做出响应. 今天的事件 在漫长的演变史,我们已经告

DOM事件模型学习笔记

下面的内容属于阅读笔记,其中涉及大量内容来自于PPK的博客的内容,如果你要跟随我的脚步领略大家风采,那么就从Introduction to Events开始阅读吧. 现代的前端开发应该是会严格遵守 html 展示文档内容构成,css 渲染页面效果,javascript 提供交互 浏览器提供交互行为可以追溯到Netscape公司在其第二个版本中支持javascript语言,随后其与微软之间的浏览器大战,以及w3c标准制定的落后,导致至今一直被诟病的浏览器兼容问题,而这些不兼容中关于DOM事件模型的

JS 事件绑定、事件监听、事件委托详细介绍

事件绑定 要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定事件处理函数.所谓事件处理函数,就是处理用户操作的函数,不同的操作对应不同的名称. 在JavaScript中,有三种常用的绑定事件的方法: 在DOM元素中直接绑定: 在JavaScript代码中绑定: 绑定事件监听函数. 在DOM中直接绑定事件 我们可以在DOM元素上绑定onclick.onmouseover.onmouseout.onmousedown.onmouseup.ondblclick.onkeyd