越简单越好 越简单越好 
java的自定义事件能不能这样写?:A类.发布(C.登陆了) ;B类.监听(C.登陆了,登陆相关()) 
登陆相关() 

} ;C类 "登陆了";

解决方案 »

  1.   

    1,先自定义一个事件public class MyEvent extends java.util.EventObject{
        public MyEvent(Object source)
        {
            super(source);
        }
    }
    2,再自定义一个监听器public class MyListener implements java.util.EventListener{
     //这里是当事件发生后的响应过程
        public void EventActivated(MyEvent me)
        {
            System.out.println("事件已经被触发");
        }
    }3,以下这个类为触发事件的事件源public class MyObject {
        private Vector vectorListeners=new Vector();
        
        public synchronized void addMyListener(MyListener ml)
        {
            vectorListeners.addElement(ml);
        }
        
        public synchronized void removeMyListener(MyListener ml)
        {
            vectorListeners.removeElement(ml);
        }
        
        protected void activateMyEvent()
        {
            Vector tempVector=null;
            
            MyEvent e=new MyEvent(this);
            
            synchronized(this)
            {
                tempVector=(Vector)vectorListeners.clone();
                
                for(int i=0;i<tempVector.size();i++)
                {
                    MyListener ml=(MyListener)tempVector.elementAt(i);
                    ml.EventActivated(e);
                }
            }
            
        }
        
     //定义一个公用方法用于触发事件
        public void test()
        {
            activateMyEvent();
        }   
    }