ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

½éÉÜÒ»ÏÂjavaµÄʼþ»úÖÆ(Ò»)
2014-11-24 01:34:58 ¡¾´ó ÖРС¡¿ ä¯ÀÀ:237´Î
Tags£º½éÉÜ java ʼþ »úÖÆ

1.event object£º¾ÍÊÇʼþ²úÉúʱ¾ßÌåµÄ¡°Ê¼þ¡±£¬ÓÃÓÚlistenerµÄÏàÓ¦µÄ·½·¨Ö®ÖУ¬×÷Ϊ²ÎÊý£¬Ò»°ã´æÔÚÓëlisternerµÄ·½·¨Ö®ÖÐ.


2.event source£º¾ßÌåµÄ½ÓÊÜʼþµÄʵÌ壬±ÈÈç˵£¬Äãµã»÷Ò»¸öbutton£¬ÄÇôbutton¾ÍÊÇevent source£¬ÕâÑùÄã±ØÐëʹbutton ¶ÔijЩʼþ½øÐÐÏàÓ¦£¬Äã¾ÍÐèҪע²áÌض¨µÄlistener£¬±ÈÈç˵ MouseEventÖ®ÖеÄMouseClicked·½·¨£¬ÕâÊÇËû¾Í±ØÐëÓÐÁËadd·½·¨.


3.event listener£º¾ßÌåµÄ¶Ô¼àÌýµÄʼþÀ࣬µ±ÓÐÆä¶ÔÓ¦µÄevent object²úÉúµÄʱºò£¬Ëü¾Íµ÷Óà ÏàÓ¦µÄ·½·¨£¬½øÐд¦Àí¡£ÔÚwindows ³ÌÐòÉè¼ÆÀï±ßÕâÖÖÏàӦʹÓÃcallback»úÖÆÀ´ÊµÏÖµÄ.


ÏÈ¿´¿´jdkÌṩµÄevent°ü£º
public interface EventListener£ºËùÓÐʼþÕìÌýÆ÷½Ó¿Ú±ØÐëÀ©Õ¹µÄ±ê¼Ç½Ó¿Ú¡£
public class EventObject extends Object implements Serializable:ËùÓÐʼþ״̬¶ÔÏ󶼽«´ÓÆäÅÉÉúµÄ¸ùÀà¡£ ËùÓÐ Event ÔÚ¹¹Ôìʱ¶¼ ÒýÓÃÁ˶ÔÏó ¡°source¡±£¬ÔÚÂß¼­ÉÏÈÏΪ¸Ã¶ÔÏóÊÇ×î³õ·¢ÉúÓйØEvent µÄ¶ÔÏó¡£


ÔÚJava2´¦Àíʼþʱ£¬Ã»ÓвÉÓÃdispatchEvent()-postEvent()-handleEvent()·½Ê½£¬²ÉÓÃÁ˼à Ìý Æ÷ À࣬ÿ¸öʼþÀ඼ÓÐÏà¹ØÁªµÄ¼àÌýÆ÷½Ó¿Ú¡£Ê¼þ´ÓʼþÔ´µ½¼àÌýÕߵĴ«µÝÊÇͨ¹ý¶ÔÄ¿±ê¼àÌýÕ߶ÔÏóµÄJava·½·¨µ÷ÓýøÐеġ£ ¶Ôÿ¸öÃ÷È·µÄʼþµÄ·¢Éú£¬¶¼ÏàÓ¦µØ¶¨ÒåÒ»¸öÃ÷È·µÄJava·½·¨¡£ ÕâЩ·½·¨¶¼¼¯Öж¨ÒåÔÚʼþ¼àÌýÕߣ¨EventListener£©½Ó¿ÚÖУ¬Õâ¸ö½Ó¿ÚÒª¼Ì³Ð java.util.EventListener¡£ÊµÏÖÁËʼþ¼àÌýÕß½Ó¿ÚÖÐһЩ»òÈ«²¿·½·¨µÄÀà¾ÍÊÇʼþ¼àÌýÕß¡£


°éËæ×ÅʼþµÄ·¢Éú£¬ÏàÓ¦µÄ ״̬ͨ³£¶¼·â×°ÔÚʼþ״̬¶ÔÏóÖУ¬¸Ã¶ÔÏó±ØÐë¼Ì³Ð×Ôjava.util.EventObject¡£Ê¼þ״̬¶ÔÏó×÷ Ϊµ¥²Î´«µÝ¸øÓ¦ÏìÓ¦¸ÃʼþµÄ¼àÌýÕß·½·¨ÖС£·¢³öijÖÖÌض¨Ê¼þµÄʼþÔ´µÄ±êʶÊÇ£º×ñ´Ó¹æ¶¨ µÄÉè¼Æ¸ñʽΪʼþ¼àÌýÕ߶¨Òå×¢²á·½·¨£¬²¢½ÓÊܶÔÖ¸¶¨Ê¼þ¼àÌýÕß½Ó¿ÚʵÀýµÄÒýÓᣠ¿ªÊ¼Ö®Ç° Ê×ÏÈÎʸöÎÊÌ⣺ÄúÊìϤjava.util.EventObject ºÍjava.util.EventListenerÁ½¸öÀàÒÔ¼°ËûÃÇÒÑÓеÄ×Ó ÀàÂð£¿Èç¹ûÄãÒѾ­Äܹ»ÊìÁ·Ê¹ÓÃjdkΪÎÒÃÇÌṩµÄʼþ¼àÌýÆ÷£¬²¢ÇÒºÜÊìϤMouseEvent, KeyEvent, WindowEventµÈµÈÕâЩjdkΪÎÒÃÇ×¼±¸ºÃµÄʼþ£¬ÄÇôÏë±ØÄã¶ÔjavaµÄʼþ»úÖÆÒѾ­ÓÐËùÀí½â¡£


µ«ÊÇÒ²ÐíÄ㻹ÊǾõµÃËäÈ»ÓÃÆðÀ´Ã»Ê²Ã´ÎÊÌ⣬µ«ÊÇÔ­Àí»¹ÊÇÓÐЩºýÍ¿£¬ÄÇôÏÂÃæÎÒÃÇÔÙ½øÒ»²½ ×Ô¼ºÊµÏÖÕâЩʼþºÍ¼àÌýÆ÷£¬ÎÒÃÇ°ÑÕâ¸öÈ¡ÃûΪ×Ô¶¨Òåʼþ¡£Æäʵ×Ô¶¨ÒåʼþÔÚjavaÖкÜÓÐÓà ´¦£¬ÎÒÃÇÓеÄʱºòÏëÈÃ×Ô¼ºµÄ³ÌÐò²úÉúÒ»¸öʼþ£¬µ«Óв»Ï£Íû£¨»òÕß²»¿ÉÄÜ£©ÓÃÊó±ê£¬¼üÅÌÖ® ÀàµÄÊäÈëÉ豸½øÐвÙ×÷£¬±ÈÈçÄãдһ¸öÓ¦ÓóÌÐò£¬ÔÚÕâ¸ö³ÌÐòÖÐÒ»µ©ÊÕµ½Óʼþ¾Í¶ÔÓʼþ½øÐÐÏà ¹Ø´¦Àí£¬¶ÔÓÚ¡°ÊÕµ½Óʼþ¡±Õâ¸öʼþ£¬jdkÖоÍûÓж¨Òå¡£¶ÔÓÚÕâÑùµÄʼþ£¬ÒÔ¼°¶ÔÓÚÕâÑùµÄʼþ
µÄ¼àÌýÆ÷£¬ÎÒÃÇÖ»ÄÜ×Ô¼º¶¯ÊÖÍê³ÉÁË¡£


ÄÇôÏÂÃæ¾ÍÒÔʵÀý¿ªÊ¼ÎÒÃÇÕâ¸ö¡°´´Ð¡±µÄ¹ý³Ì£ºÊ×ÏÈ£¬ÎÒÃÇÒªÃ÷È·jdkÖÐÐèÒªµÄ×ÊÔ´£ºÀàEventObject ×÷Ϊ¸¸ÀàÓÃÀ´Éú³ÉÎÒÃÇ×Ô¼ºµÄʼþÀà,½Ó¿ÚEventListenerÓÃÀ´ÊµÏÖÎÒÃÇ×Ô¼ºµÄ¼àÌýÆ÷£»Ê£ÏµÄÊÂÇé¾ÍÊÇÈçºÎ×¢²áÕâЩʼþÒÔ¼°²âÊÔËûÃÇÁË¡£


£¨1£©Í¨¹ýDemoEvent.javaÎļþ´´½¨DemoEventÀà,Õâ¸öÀà¼Ì³ÐEventObject.Õâ¸öÀàµÄ¹¹Ô캯 ÊýµÄ²ÎÊý´«µÝÁ˲úÉúÕâ¸öʼþµÄʼþÔ´£¨±ÈÈç¸÷Öֿؼþ£©£¬·½·¨getSourceÓÃÀ´»ñµÃÕâ¸öʼþÔ´µÄÒýÓá£


DemoEvent.java package demo.listener; import java.util.EventObject; public class DemoEvent extends EventObject { Object obj; public DemoEvent(Object source) { super(source); obj = source; } public Object getSource() { return obj; } public void say() { System.out.println(¡°This is say method¡­¡±); } }


£¨2£© ¶¨ÒåеÄʼþ¼àÌý½Ó¿Ú£¬¸Ã½Ó¿Ú¼Ì³Ð×ÔEventListener£»¸Ã½Ó¿Ú°üº¬¶ÔDemeEventʼþµÄ´¦Àí³ÌÐò£º


DemoListener.java package demo.listener; import java.util.EventListener; public interface DemoListener extends EventListener { public void demoEvent(DemoEvent dm); }


ͨ¹ýÉÏÃæµÄ½Ó¿ÚÎÒÃÇÔÙ¶¨Òåʼþ¼àÌýÀ࣬ÕâЩÀà¾ßÌåʵÏÖÁ˼àÌý¹¦ÄܺÍʼþ´¦Àí¹¦ÄÜ¡£»ØÏëÒ»ÏÂÉÏÎÄÖÐÄÇ
ËÄÖÖʵÏÖ·½Ê½£¬ÎÒÃÇÕâÀï²»ÕýÊÇʹÓÃÁËÆäÖеĵÚÈýÖÖ¡ª¡ªÍⲿÀàд·¨µÄ·½Ê½Âð£¿


Listener1.java package demo.listener; public class Listener1 implements DemoListener { public void demoEvent(DemoEvent de) { System.out.println(¡°Inside listener1¡­¡±); } } Listener2.java package demo.listener; public class Listener2 implements DemoListener { public void demoEvent(DemoEvent de) { System.out.println(¡°Inside listener2¡­¡±); } } Listener3.java package demo.listener; public class Listener3 implements DemoListener { public void demoEvent(DemoEvent de) { System.out.println(¡°Inside listener3¡­¡±); } }


£¨3£©Í¨¹ýDemeSource..avaÎļþ´´ÔìÒ»¸öʼþÔ´À࣬ËüÓÃÒ»¸öjava.utile.Vector¶ÔÏóÀ´´æ´¢
ËùÓеÄʼþ¼àÌýÆ÷¶ÔÏ󣬴洢·½Ê½ÊÇͨ¹ýaddListener(..)ÕâÑùµÄ·½·¨¡£notifyDemeEvent(..)ÊÇ
´¥·¢Ê¼þµÄ·½·¨£¬ÓÃÀ´Í¨ÖªÏµÍ³£ºÊ¼þ·¢ÉúÁË£¬Äãµ÷ÓÃÏàÓ¦µÄ´¦Àíº¯Êý£¨»Øµ÷º¯Êý£©°É¡£


DemoSource.java package demo.listener; import java.util.*; public class DemoSource { private Vector repository = new Vector(); DemoListener dl; public DemoSource() { } public void addDemoListener(DemoListener dl) { repository.addElement(dl); } public void notifyDemoEvent() { Enumeration enum = repository.elements(); while(enum.hasMoreElements()) {

Ê×Ò³ ÉÏÒ»Ò³ 1 2 ÏÂÒ»Ò³ βҳ 1/2/2
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
ÉÏһƪ£ºjavaÃæÊÔÖ®Ìî¿ÕÌâ ÏÂһƪ£º.netµÄ´íÎ󴦻úÖÆ·½ÃæµÄ¼¸¸öÎÊÌâ

×îÐÂÎÄÕÂ

ÈÈÃÅÎÄÕÂ

Hot ÎÄÕÂ

Python

C ÓïÑÔ

C++»ù´¡

´óÊý¾Ý»ù´¡

linux±à³Ì»ù´¡

C/C++ÃæÊÔÌâÄ¿