`
qianjiangbing
  • 浏览: 91306 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

事件监听机制的深入理解

    博客分类:
  • java
阅读更多
    一、我们先了解下几个概念:
     1.事件源
     2.事件
     3.事件监听者
     在弄清这些概念之前先说个故事:有一个小痞子,在马路上欺负一个小女孩,小女孩向妈妈发出求救信息,妈妈那棍子来赶跑小痞子。故事就这么简单,有人会说,这太扯淡了吧,但是我想说,这个故事可以很好的帮我们理解事件处理机制。
     这里小女孩就是事件源,小女孩向妈妈发出求救信息是事件,妈妈就是事件监听者。小痞子出发事件源,事件源通过事件将信息传递给事件监听者,事件监听者做出相应的反应。
    二、实现一个类的基本步骤:
    1.实现相应的接口(如ActionListener,KeyListener,MouseListener,WindowListener){}
    如这里的Demo9_3类实现的ActionListener接口;
   
public class Demo9_3 extends JFrame implements ActionListener

    Dog类实现的ActionListener接口
    2.把接口处理的方法根据需要重新编写;
   
public void actionPerformed(ActionEvent e){}

    3.在事件源注册监听
   
//注册监听

jb1.addActionListener(this);
jb1.addActionListener(dog);
//指定动作指令
jb1.setActionCommand("aa");

jb2.addActionListener(this);
jb2.addActionListener(dog);
//动作指令
jb2.setActionCommand("bb");
    4.事件传递靠事件对象
    
public class Dog implements ActionListener{


@Override
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("aa")){
System.out.println("dog知道你点击了黑的按钮");
}else if(e.getActionCommand().equals("bb")){
System.out.println("dog知道你点击了红的按钮");
}

}

}
     比如这里你可以点击黑色按钮通过dog对象触发事件,向控制台输出“dog知道你点击了黑的按钮”。
      整个源代码如下
package cn.qjb;


import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Demo9_3 extends JFrame implements ActionListener{
//声明
JPanel mp=null;
JButton jb1=null;
JButton jb2=null;
public static void main(String[] args) {


//实例化对象
Demo9_3 demo=new Demo9_3();

}
//构造器
public Demo9_3(){
mp=new JPanel();
jb1=new JButton("黑色");
jb2=new JButton("红色");

this.add(jb1,BorderLayout.NORTH);
mp.setBackground(Color.black);
this.add(mp);
this.add(jb2,BorderLayout.SOUTH);

//实例化一个Dog对象,一个普通的类也可以监听到
Dog dog=new Dog();
//注册监听
jb1.addActionListener(this);
jb1.addActionListener(dog);
//指定动作指令
jb1.setActionCommand("aa");

jb2.addActionListener(this);
jb2.addActionListener(dog);
//动作指令
jb2.setActionCommand("bb");
this.setSize(200, 150);
this.setDefaultCloseOperation(3);
this.setVisible(true);
}

public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("aa")){
System.out.println("你点击了黑色按钮");
mp.setBackground(Color.black);
}else if(e.getActionCommand().equals("bb")){
System.out.println("你点击了红色按钮");
mp.setBackground(Color.red);
}

}
public class Dog implements ActionListener{

@Override
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("aa")){
System.out.println("dog知道你点击了黑的按钮");
}else if(e.getActionCommand().equals("bb")){
System.out.println("dog知道你点击了红的按钮");
}

}

}
}
     做的很简单的一个关于事件机制理解的例子,如有不足之处请谅解。欢迎指正!
    
  
分享到:
评论

相关推荐

    js事件监听机制(事件捕获)总结

    最后,了解并正确使用事件监听机制是前端开发工程师必备的技能之一。它涉及到的问题不仅包括事件的捕获与冒泡,还有对不同浏览器兼容性的处理,以及事件对象的正确使用。随着前端技术的不断发展,对这些基础知识的...

    深入探索Spring事件监听机制:技术与应用

    总之,理解并掌握Spring的事件监听机制对于任何Java开发者来说都是至关重要的,它能够帮助我们更好地利用Spring框架来构建模块化、可维护的系统。通过创建和处理自定义事件,我们可以实现更灵活的业务逻辑,提高代码...

    android 事件监听机制

    通过理解并熟练运用Android的事件监听机制,开发者可以创建出更丰富、更具交互性的应用,如模拟飞行游戏中的飞机操控,或者其他需要精确用户输入的应用场景。不断探索和实践,是提升Android开发技能的关键。

    windchill交流第三篇:Windchill中的事件监听

    【标题】:“Windchill交流第三篇:Windchill中的事件监听” 在Windchill系统中,事件监听是一项核心功能,它允许系统在特定事件发生时执行预定义的...理解和掌握这一机制对于深入理解和优化Windchill系统至关重要。

    java自定义事件监听

    首先,我们需要理解Java AWT(Abstract Window Toolkit)和Swing库中的基础事件监听机制。这两个库提供了许多内置的事件类和监听器接口,如ActionListener用于处理按钮点击,MouseListener和MouseMotionListener用于...

    事件处理监听器

    本文将深入探讨事件处理监听器的概念,以及如何在Java或类似的面向对象语言中设置和使用它们。 首先,我们来理解“事件”这个概念。在UI编程中,事件是用户与界面元素交互的结果。例如,当用户点击一个按钮时,就会...

    ScrollView 的滚动事件监听

    当需要处理ScrollView的滚动事件时,开发者需要深入理解其滚动机制和监听接口。本文将详细探讨ScrollView的滚动事件监听及其相关知识点。 首先,ScrollView的滚动事件监听主要涉及到两个关键接口:...

    libgdx EventHandling 事件监听

    本文将深入探讨libGDX的事件监听机制。 事件处理在libGDX中的核心是`InputProcessor`接口,它是libGDX输入系统的关键组件。`InputProcessor`提供了多种方法来处理用户的各种输入,如触摸屏点击、键盘按键等。开发者...

    gridview+事件监听

    在实际开发中,可以参考这样的例子来实践和理解上述的事件监听机制。 总之,理解并正确使用GridView的事件监听是提升用户体验的关键。通过点击和长按事件,我们可以实现各种交互功能,如更换图片、跳转到详情页等。...

    Java事件处理机制教学方法探讨.pdf

    为了让初学者更好理解Java事件处理机制及其编程技术,黄增喜、王晓明和于春三位作者提出了一个基于核心概念解析、事件处理流程分析以及角色分工清晰化的教学思路,并给出了相应的教学方法。以下是对这些知识点的详细...

    JAVA事件处理机制

    下面我们将深入探讨这些组件以及相关的事件监听器适配器。 首先,事件源是产生事件的对象,通常是UI组件,如按钮、文本框等。当用户与这些组件交互时,事件源会生成相应的事件。例如,当用户点击一个按钮时,按钮...

    Java监听键盘鼠标全局事件[定义].pdf

    Java监听键盘鼠标全局事件 Java监听键盘鼠标全局事件是指使用Java语言来监听和处理键盘和鼠标...该技术需要深入了解Java Native Interface、Windows Hook机制、线程和同步等技术细节,以便正确地实现事件监听和处理。

    spring的Applicationcontext对事件的监听,实现类似MQ的效果

    通过这种方式,`ApplicationContext`的事件监听机制可以实现在同一个应用程序上下文中进行组件间的异步通信。虽然它的功能没有完整的消息队列系统强大,如RabbitMQ或Kafka,但在简单的场景下,例如在同一应用内的...

    .NET事件监听机制的局限与扩展分析

    .NET作为微软推出的一个面向对象的编程环境,其事件监听...这些知识对深入理解和运用.NET的事件模型至关重要,对希望编写高质量.NET应用程序的开发者来说,了解这些局限性和扩展方法将大大提升软件的设计质量和性能。

    servlet事件监听器和JSP基础

    Servlet事件监听器是Java Servlet API提供的一种机制,它允许程序员注册监听器对象来响应特定的服务器或会话事件。主要的监听器类型包括: 1. **ServletRequestListener**:监听请求初始化和销毁事件,可以在请求...

    监听浏览器文件下载事件的插件

    通过分析`download-client-listener-master`这个压缩包内的代码,我们可以进一步了解其具体实现方式,包括可能的事件监听、状态更新机制以及错误处理策略。 总的来说,理解和掌握如何监听浏览器的文件下载事件,...

    java中监听机制,以及观察者设计模式

    首先,让我们来了解什么是Java的监听机制。在Java中,监听机制主要用于事件驱动编程,例如用户界面(UI)组件的交互。当一个对象的状态发生变化时,它会通知已经注册的监听器,这些监听器可以响应并采取相应的操作。...

    java+多线程+界面编程+事件监听+坦克大战源码整理

    本资源“java+多线程+界面编程+事件监听+坦克大战源码整理”是一个综合性的学习资料,旨在帮助开发者深入理解并实践这些核心概念。下面将对这些知识点进行详细的阐述。 1. **Java多线程**: Java多线程允许程序...

Global site tag (gtag.js) - Google Analytics