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

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

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

    jsenter

    JAVA授權事件模型講解(原創)

    JAVA的授權事件模型包含三個概念:事件源,事件,事件監聽器。

    一,事件源:一個產生事件的對象。當這個對象的內部狀態改變時,事件就會產生。一個事件源必須注冊一個事件監聽器已使監聽器能夠可以接受一個特定時間的通知。每一種事件都有它特定的注冊方法,通用形式為:addTypeListener(TypeListener e)

    二,事件:一個事件是描述了一個事件源的狀態改變的對象。他可能通過一個人與圖形用戶接口的交互產生。如輸入文字,點擊鼠標。也可能不是由這些產生,如:一個事件可能在定時器中到期而產生。當然用戶也可以自由的定義自己的事件。

    注意:其中的Type可以是Key, Mouse,等。一個事件源可能允許注冊多個事件監聽器,也可能只允許注冊一個監聽器。

    事件源也允許注銷一個事件監聽器,通用方法為:removeTypeListener(TypeListener e);

    三,事件監聽器:一個當事件發生時的時候被通知的對象。它有兩個要求:
    1,它必須在事件源中注冊。
    2,它必須實現接受和處理事件通知的方法。

    還是來個比喻吧:你要想成為一個可以接受事件并處理事件的對象(即事件監聽器),必須繼承TypeListener類,其中的Type為事件類型。然后去注冊你想監聽的對象,并自己實現處理事件發生的方法,然后你就坐在等待事件的發生啦,哈哈!


    附源程序研究用:
    /*===============DemoEvent.java清單=============*/
    import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;


    public class DemoEvent extends Applet implements MouseListener, MouseMotionListener{
        public String msg = "";
        public int mouseX = 0, mouseY = 0;
        
        /*
        *注冊事件監聽器
        */
        public void init() {
            addMouseListener(this);
            addMouseMotionListener(this);
        }

        /*
        *下面為所有處理MouseEvent的方法,當然你可以自定義自己的方法,但不能少了這些。
        */
        public void mouseMoved(MouseEvent me) {
            showStatus("mouse moved at :"+me.getX() +"," + me.getY());    
        }
        public void mouseReleased(MouseEvent me) {
            mouseX = me.getX();
            mouseY = me.getY();
            msg = "UP";
            repaint();    
        }
        public void mouseClicked(MouseEvent me) {
            mouseX = 0;
            mouseY = 10;
            msg = "Mouse clicked!";
            repaint();
        }
        public void mouseEntered(MouseEvent me) {
            mouseX = 0;
            mouseY = 10;    ;
            msg = "Mouse Entered!";
            repaint();
        }
        public void mouseExited(MouseEvent me) {
            mouseX = 0;
            mouseY = 0;
            msg = "Mouse Exited!";
            repaint();
        }
        public void mouseDragged(MouseEvent me) {
            mouseX = me.getX();
            mouseY = me.getY();
            msg = "*";
            repaint();    
        }
        public void mousePressed(MouseEvent me) {
            mouseX = me.getX();
            mouseY = me.getY();
            msg = "Down";
            repaint();
        }
        /*===================方法說明結束==================*/    
        public void paint(Graphics g) {
            g.drawString(msg, mouseX, mouseY);
        }
    }
    /*
    *相關說明:這里的DemoEvent既是事件源也是事件監聽器。
    *
    */
    /*===================DemoEvent.java清單===================*/

    posted on 2005-03-31 22:44 李貝 閱讀(1379) 評論(4)  編輯  收藏 所屬分類: JAVA

    評論

    # re: JAVA授權事件模型講解(原創) 2005-03-31 23:26 dudu

    字體太大, 麻煩調整一下!  回復  更多評論   

    # re: JAVA授權事件模型講解(原創) 2005-04-01 11:50 李貝

    謝謝提醒啊,原來我怕別人看的累,所以搞大點的字,
    已經改過來了!不行的話還請再提醒!  回復  更多評論   

    # re: JAVA授權事件模型講解(原創) 2005-06-17 13:16 zorrowei

    兩者是一回事情嗎?小可不清楚的說~!  回復  更多評論   

    # re: JAVA授權事件模型講解(原創) 2005-06-17 13:17 zorrowei

    我說的是:
    授權事件模型與委托事情模型!  回復  更多評論   

    主站蜘蛛池模板: 日韩电影免费在线观看视频| 无码区日韩特区永久免费系列| 又大又粗又爽a级毛片免费看| 亚洲人成未满十八禁网站| 手机看黄av免费网址| 亚洲国产成人久久77| 四虎永久在线精品免费观看视频| 亚洲成AV人片久久| 黄页网站免费观看| 亚洲精品乱码久久久久蜜桃| 在线观看亚洲免费| 免费一级毛片在线播放视频免费观看永久| 国产yw855.c免费视频| 一级做a免费视频观看网站| 综合亚洲伊人午夜网| 免费国产99久久久香蕉| 亚洲天堂一区二区| 免费国产黄线在线观看| 亚洲欧美国产日韩av野草社区| 免费一级做a爰片久久毛片潮喷| 午夜在线免费视频 | 亚洲视频在线观看网址| 无码乱肉视频免费大全合集| 亚洲精品无码国产片| 亚洲国产综合人成综合网站| 天黑黑影院在线观看视频高清免费 | 免费又黄又爽的视频| 中文字幕乱理片免费完整的| 久久久久亚洲AV无码麻豆| 可以免费看的卡一卡二| 美美女高清毛片视频黄的一免费| AV在线播放日韩亚洲欧| 99久久免费看国产精品| 亚洲欧美日韩中文字幕一区二区三区 | 精品免费AV一区二区三区| 亚洲精品国产美女久久久| av无码免费一区二区三区| 国产成人综合亚洲绿色| 亚洲人成影院在线| 免费人成网站在线高清| **真实毛片免费观看|