iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >什么是java事件
  • 772
分享到

什么是java事件

java入门事件java 2017-07-12 22:07:08 772人浏览 猪猪侠
摘要

Java事件机制包括三个部分:事件、事件源、事件监听器。1、事件事件一般继承自java.util.EventObject类,封装了事件源对象及跟事件相关的信息。import java.util.EventObject; pu

Java事件机制包括三个部分:事件、事件源、事件监听器。

1、事件

事件一般继承自java.util.EventObject类,封装了事件源对象及跟事件相关的信息。

import java.util.EventObject;  
  
  
public class CusEvent extends EventObject {  
    private static final long serialVersionUID = 1L;  
    private Object source;//事件源  
      
    public CusEvent(Object source){  
        super(source);  
        this.source = source;  
    }  
  
    public Object getSource() {  
        return source;  
    }  
  
    public void setSource(Object source) {  
        this.source = source;  
    }  
}

2、事件源

事件源是事件发生的地方,由于事件源的某项属性或状态发生了改变(比如BUTTON被单击、TEXTBOX的值发生改变等等)导致某项事件发生。换句话说就是生成了相应的事件对象。因为事件监听器要注册在事件源上,所以事件源类中应该要有盛装监听器的容器(List、Set等等)。

  
public class EventSourceObject {  
    private String name;  
    //监听器容器  
    private Set listener;  
    public EventSourceObject(){  
        this.listener = new HashSet();  
        this.name = "defaultname";  
    }  
    //给事件源注册监听器  
    public void addCusListener(CusEventListener cel){  
        this.listener.add(cel);  
    }  
    //当事件发生时,通知注册在该事件源上的所有监听器做出相应的反应(调用回调方法)  
    protected void notifies(){  
        CusEventListener cel = null;  
        Iterator iterator = this.listener.iterator();  
        while(iterator.hasNext()){  
            cel = iterator.next();  
            cel.fireCusEvent(new CusEvent(this));  
        }  
    }  
    public String getName() {  
        return name;  
    }  
    //模拟事件触发器,当成员变量name的值发生变化时,触发事件。  
    public void setName(String name) {  
        if(!this.name.equals(name)){  
            this.name = name;  
            notifies();  
        }        
    }  
}

3、事件监听器

事件监听器实现java.util.EventListener接口,注册在事件源上,当事件源的属性或状态改变时,取得相应的监听器调用其内部的回调方法。

import java.util.EventListener;  
  
  
public class CusEventListener implements EventListener {  
      
    //事件发生后的回调方法  
    public void fireCusEvent(CusEvent e){  
        EventSourceObjecteObject = (EventSourceObject)e.getSource();  
        System.out.println("My name has been changed!");  
        System.out.println("I Got a new name,named ""+eObject.getName()+""");
    }  
}

测试

public class MainTest {  
   
    public static void main(String[] args) {  
        EventSourceObject object = new EventSourceObject();  
        //注册监听器  
        object.addCusListener(new CusEventListener(){  
            @Override  
            public void fireCusEvent(CusEvent e) {  
                super.fireCusEvent(e);  
            }  
        });  
        //触发事件  
        object.setName("AiLu");  
    }  
}

4、事件、事件源、监听器三者之间的联系

事件源-----产生----->事件------>被事件监听器发现------>进入事件处理代码

import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class DemoAction extends Frame {//窗口就是事件源
    public DemoAction() {
        this.setTitle("窗口关闭");
        this.setLocation(400, 200);
        this.setSize(360, 280);   
        //给窗口绑定一个事件监听器
        this.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {//事件WindowEvent
                System.exit(0);//关闭窗口事件, 那么退出JVM
            }
        });
        this.setVisible(true);
    }
 
    public static void main(String[] args) {
        new DemoAction();
    }
}

5、事件处理的主要步骤:

(1)生成监听器;

(2)在发生事件的对应组件上注册监听器;

(3)注册监听器的组件上发生事件时,将事件对象返回给监听器;

(4)监听器调用相应方法处理事件。

代码示例:

public class LoginListener implements ActionListener{
String text;
public void actionPerfORMed(ActionEvent e){
if("willow".equals(text)){
system.out.println("登录成功!
");
}
}
}
public class Login(){
public void showFrame(){
//创建窗体
JFrame LFrame = new JFrame();
LFrame.setSize(1000,800);
LFrame.setLocationRelativeTo(null);
LFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
LFrame.setLayout(new FlowLayout());
//创建监听器对象
LoginListener lg = new LoginListener();
//给窗体添加按钮组件
JTextField tf = new JTextField();
LFrame.add(tf);
//给输入框添加监听器
tf.addActionLisener(lg);
tf.text=tf.getText();
}
};

众多java培训视频,尽在PHP中文网,欢迎在线学习

--结束END--

本文标题: 什么是java事件

本文链接: https://www.lsjlt.com/news/3742.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java GUI事件处理方式是什么
    本篇内容主要讲解“Java GUI事件处理方式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java GUI事件处理方式是什么”吧!事件处理主要涉及:事件源,事件,事件...
    99+
    2023-06-21
  • javascript事件是什么
    这篇文章将为大家详细讲解有关javascript事件是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。JavaScript是什么JavaScript是一种直译式的脚本语言,其解释器被称为J...
    99+
    2023-06-15
  • Java中的事件监听机制是什么
    这篇文章给大家介绍Java中的事件监听机制是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。鼠标事件监听机制的三个方面:1.事件源对象:事件源对象就是能够产生动作的对象。在Java语言中所有的容器组件和元素组件都是事...
    99+
    2023-05-31
    java 事件监听机制 ava
  • java中的事件处理模型是什么
    java中的事件处理模型是什么?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java有哪些集合类Java中的集合主要分为四类:1、List列表:有序的,可重复的;2、Queue...
    99+
    2023-06-14
  • java事件处理的三要素是什么
    Java事件处理的三要素包括事件源、事件监听器和事件对象。1. 事件源(Event Source):事件源是指触发事件的对象。它可以...
    99+
    2023-09-11
    java
  • redis文件事件和时间事件是什么
    今天小编给大家分享一下redis文件事件和时间事件是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来...
    99+
    2024-04-02
  • c#什么是委托什么是事件
    委托是一种指向方法的引用类型,用于实现松散耦合,而事件是一种特殊委托,用于事件处理。委托可将调用方法的职责转移到接收方,提高代码可重用性。事件允许对象向订阅者通知事件发生,订阅者可响应事...
    99+
    2024-04-04
    c#
  • javaScript事件源是什么
    今天就跟大家聊聊有关javaScript事件源是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在事件中,当前操作的那个元素就是事件源,比如网页元素中input有onclick事件...
    99+
    2023-06-15
  • MySQL中什么是事件
    MySQL中什么是事件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在MySQL5.1中新增了一个特色功能事件调度器(Even...
    99+
    2024-04-02
  • javascript中什么是事件
    这篇文章主要讲解了“javascript中什么是事件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript中什么是事件”吧! ...
    99+
    2024-04-02
  • javascript DOM事件是什么
    这篇文章主要讲解了“javascript DOM事件是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript DOM事件是什么”吧!DOM级...
    99+
    2024-04-02
  • Java事件与错误处理方法是什么
    这篇文章主要讲解了“Java事件与错误处理方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java事件与错误处理方法是什么”吧!  12.1事件处理  传授新知  消息驱动、事件处理...
    99+
    2023-06-03
  • Java AWT实现事件处理流程是什么
    今天小编给大家分享一下Java AWT实现事件处理流程是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。AWT的事件处理事...
    99+
    2023-06-30
  • 什么是JavaScript事件处理
    这篇文章主要介绍“什么是JavaScript事件处理”,在日常操作中,相信很多人在什么是JavaScript事件处理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是Jav...
    99+
    2024-04-02
  • JavaScript事件是什么意思
    这篇文章主要介绍JavaScript事件是什么意思,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! JavaScript事件是指在文档或者浏览器中发生的一些...
    99+
    2024-04-02
  • nodejs事件循环是什么
    这篇文章主要讲解了“nodejs事件循环是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“nodejs事件循环是什么”吧!我们都听说过 JavaScript 和 Node.js 是单线程的...
    99+
    2023-07-04
  • jquery事件是什么意思
    小编给大家分享一下jquery事件是什么意思,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! jque...
    99+
    2024-04-02
  • JavaScript五大事件是什么
    这篇文章主要讲解了“JavaScript五大事件是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript五大事件是什么”吧!页面事件思考:H...
    99+
    2024-04-02
  • 什么是Flex事件机制
    这篇文章主要为大家展示了“什么是Flex事件机制”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“什么是Flex事件机制”这篇文章吧。Flex事件机制介绍1.什么是Flex事件机制Flex事件可以看...
    99+
    2023-06-17
  • 什么是JavaScript时间事件
    本篇内容主要讲解“什么是JavaScript时间事件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“什么是JavaScript时间事件”吧!一、前言setTime...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作