<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    俊星的BLOG

    JAVA MAIL之簡單事件

    JAVA MAIL 中包含了連接、計數等事件機制,下面的對連接事件的一個簡單實現:
    1、事件基類:
    package myevent;

    import java.util.EventObject;

    public abstract class MyMailEvent extends EventObject {
        
    private static final long serialVersionUID = 2183013741510840197L;

        
    public MyMailEvent(Object source) {
            
    super(source);
        }

        
        
    public abstract void dispatch(Object listener);
    }


    2、連接事件類:
    package myevent;

    public class MyConnEvent extends MyMailEvent {
        
    public static final int OPENED = 1;
        
    public static final int CLOSED = 2;
        
    protected int type;
        
    private static final long serialVersionUID = 6177016117289759191L;

        
    public MyConnEvent(Object source, int type) {
            
    super(source);
            
    this.type = type;
        }


        @Override
        
    public void dispatch(Object listener) {
            
    switch (type) {
            
    case OPENED:
                ((MyConnListener) listener).opened(
    this);
                
    break;
            
    case CLOSED:
                ((MyConnListener) listener).closed(
    this);
            
    default:
                
    break;
            }


        }


        
    public int getType() {
            
    return type;
        }

    }


    3、連接事件偵聽類:
    package myevent;

    import java.util.EventListener;

    public interface MyConnListener extends EventListener {
        
    public void opened(MyConnEvent e);

        
    public void closed(MyConnEvent e);
    }


    4、連接事件適配器類:
    package myevent;

    /** 采用Adapter的為了使用時只需重載部分方法 */
    public abstract class MyConnAdapter implements MyConnListener {
        
    public void opened(MyConnEvent e) {

        }


        
    public void closed(MyConnEvent e){
            
        }

    }


    5、測試:
    package myevent;

    import java.util.ArrayList;
    import java.util.List;

    public class EventTest {
        
    private List<MyConnListener> conns = new ArrayList<MyConnListener>();

        
    public void addConnListener(MyConnListener lis) {
            conns.add(lis);
        }


        
    public void notifyConn() {
            List
    <MyMailEvent> list = new ArrayList<MyMailEvent>();
            list.add(
    new MyConnEvent("source1", MyConnEvent.OPENED));
            list.add(
    new MyConnEvent("source2", MyConnEvent.OPENED));
            list.add(
    new MyConnEvent("source3", MyConnEvent.CLOSED));

            
    for (MyMailEvent e : list) {
                
    for (MyConnListener inst : conns) {
                    e.dispatch(inst);
                }

            }

        }


        
    public static void main(String[] args) {
            EventTest test 
    = new EventTest();
            
    // 只偵聽open事件
            test.addConnListener(new MyConnAdapter() {
                
    public void opened(MyConnEvent e) {
                    System.out.println(e.getSource() 
    + ":listener 1 after open");
                }

            }
    );
            
    // 只偵聽close事件
            test.addConnListener(new MyConnAdapter() {
                
    public void closed(MyConnEvent e) {
                    System.out.println(e.getSource() 
    + ":listener 2 after close");
                }

            }
    );
            
    // open、close都偵聽
            test.addConnListener(new MyConnAdapter() {
                
    public void opened(MyConnEvent e) {
                    System.out.println(e.getSource() 
    + ":listener 3 after open");
                }


                
    public void closed(MyConnEvent e) {
                    System.out.println(e.getSource() 
    + ":listener 3 after close");
                }

            }
    );
            test.notifyConn();
        }

    }

    輸出:
    source1:listener 1 after open
    source1:listener 
    3 after open
    source2:listener 
    1 after open
    source2:listener 
    3 after open
    source3:listener 
    2 after close
    source3:listener 
    3 after close

    6、點擊下載代碼

    posted on 2009-04-25 13:13 俊星 閱讀(211) 評論(0)  編輯  收藏 所屬分類: 代碼庫

    主站蜘蛛池模板: 一二三四在线播放免费观看中文版视频 | 69视频免费在线观看| 亚洲色图综合在线| 人妖系列免费网站观看| 免费的一级片网站| 亚洲精品GV天堂无码男同| 黄网址在线永久免费观看| 亚洲字幕AV一区二区三区四区| 国产一卡二卡四卡免费| 亚洲午夜一区二区电影院| 成年免费大片黄在线观看岛国| 亚洲AV日韩综合一区尤物| 国产精品免费小视频| 日韩久久无码免费毛片软件| 亚洲精品第一国产综合境外资源| 女bbbbxxxx另类亚洲| 亚洲乱码国产一区网址| 999zyz**站免费毛片| 亚洲国产一区二区a毛片| 5g影院5g天天爽永久免费影院| 亚洲人成网站在线观看播放青青| 野花高清在线电影观看免费视频| 亚洲国产精品无码久久九九大片 | 亚洲aⅴ天堂av天堂无码麻豆| 亚洲av午夜精品一区二区三区| 精品国产污污免费网站入口在线| 久久久久亚洲精品成人网小说| 免费观看无遮挡www的视频| jiz zz在亚洲| 中文字幕亚洲一区二区三区| 99久久99热精品免费观看国产| 亚洲免费福利视频| 国产成人aaa在线视频免费观看 | 亚洲AⅤ视频一区二区三区| 美女巨胸喷奶水视频www免费| 亚洲美女激情视频| 国产大片免费观看中文字幕| 久久久久久国产精品免费无码| 亚洲av乱码中文一区二区三区| 亚洲精品夜夜夜妓女网| 成人超污免费网站在线看|