<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)  編輯  收藏 所屬分類: 代碼庫

    主站蜘蛛池模板: 日韩免费观看一区| 国产免费阿v精品视频网址| 国产成人亚洲精品91专区手机| 成人免费无码大片A毛片抽搐| www.黄色免费网站| 一个人看的www免费高清| 免费精品国产自产拍在线观看| 农村寡妇一级毛片免费看视频| 一区二区三区免费视频观看| 免费无码婬片aaa直播表情| 一级毛片免费不卡| 在线观看人成视频免费无遮挡| 亚洲人精品亚洲人成在线| 亚洲人成人77777在线播放| 亚洲人成伊人成综合网久久久| 在线亚洲97se亚洲综合在线| 最新69国产成人精品免费视频动漫| 岛国精品一区免费视频在线观看 | 曰批视频免费40分钟试看天天| 精品熟女少妇a∨免费久久| 一区二区三区免费看| 中文字幕无码毛片免费看| 久久免费动漫品精老司机| 国产曰批免费视频播放免费s | 一二三区免费视频| 免费无码黄网站在线看| 18禁美女黄网站色大片免费观看| 成人无码区免费视频观看| 国产又粗又长又硬免费视频| 国产中文在线亚洲精品官网| 毛色毛片免费观看| 四虎永久免费地址在线网站| 在线观看亚洲精品福利片| 久久综合亚洲色一区二区三区| 亚洲av一综合av一区| 久久久久国产亚洲AV麻豆 | 亚洲第一页综合图片自拍| 在线天堂免费观看.WWW| 国产免费69成人精品视频| 亚洲色自偷自拍另类小说| 亚洲妇女水蜜桃av网网站|