Event Monitoring mechanism in Java

Source: Internet
Author: User
Tags event listener

Look at the project code encountered a lot of event monitoring mechanism related code. Now Learn:

The Java event mechanism consists of three parts: events, event listeners, and event sources.

1. Event: Inherited from the Java.util.EventObject class, as defined by the developer themselves.

Package Com.shuyan.javatest.eventtest;import Java.util.eventobject;public Class Dnsevent extends EventObject {    Private String UserData;    Private long parsetime;    Public dnsevent (Object source) {        super (source);    }    Public Dnsevent (Object source, String UserData, long parsetime) {        super (source);        This.userdata = UserData;        This.parsetime = Parsetime;    }    Public String Getuserdata () {        return userData;    }    public void Setuserdata (String userData) {        this.userdata = userData;    }    Public long Getparsetime () {        return parsetime;    }    public void Setparsetime (long parsetime) {        this.parsetime = Parsetime;    }}

2. Event Listener: implement Java.util.EventListener Interface, register on the event source, when the property or state of the event source changes, get the corresponding listener to call its internal callback method.

Package Com.shuyan.javatest.eventtest;import Java.util.eventlistener;public Interface Dnseventlistener extends EventListener {public    void processdnsevent (Dnsevent dnsevent);
Detailed implementation classes for listeners

public class Dnseventalistenerimpl implements Dnseventlistener {    @Override public    void Processdnsevent ( Dnsevent dnsevent) {        String UserData = Dnsevent.getuserdata ();        System.out.println ("userdata-->" + UserData);}    }

3. Event Source: The event occurs where an event occurs because an event source property or state has changed. Because event listeners are to be registered on the event source, the event source class should have a container for the listener (List,set, and so on).

< Span style= "FONT-FAMILY:HELVETICA,TAHOMA,ARIAL,SANS-SERIF; font-size:14px; line-height:25.2000007629395px ">

public class Managerlistener {    private list<dnseventlistener> listeners = NULL;    private static class Singleton {        static Managerlistener Managerlistener = new Managerlistener ();    }    public static Managerlistener getinstance () {        return singleton.managerlistener;    }    Private Managerlistener () {        listeners = new arraylist<> ();    }    public void Adddnseventlistener (Dnseventlistener listener) {        this.listeners.add (listener);    }    public void Removednseventlistener (Dnseventlistener listener) {        this.listeners.remove (listener);    }    public void Firednseventlistener (Dnsevent event) {for        (Dnseventlistener listener:listeners) {            Listener.processdnsevent (event);}}}    
Tests such as the following:


public class Dnseventtest {public    static void Main (string[] args) {        Managerlistener Managerlistener = Managerlis Tener.getinstance ();        Dnsevent dnsevent = new Dnsevent (Managerlistener, "data", 1000L);        Dnseventalistenerimpl listener = new Dnseventalistenerimpl ();        Managerlistener.adddnseventlistener (listener);        Managerlistener.firednseventlistener (dnsevent);    }}


< Span style= "FONT-FAMILY:HELVETICA,TAHOMA,ARIAL,SANS-SERIF; font-size:14px; line-height:25.2000007629395px ">

< Span style= "FONT-FAMILY:HELVETICA,TAHOMA,ARIAL,SANS-SERIF; font-size:14px; line-height:25.2000007629395px "> references: http://blog.csdn.net/longlong3050/article/details/6854456



Event Monitoring mechanism in Java

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.