<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 李貝 閱讀(1380) 評論(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

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

    主站蜘蛛池模板: 嫩草影院在线播放www免费观看| 亚洲jizzjizz在线播放久| 国产偷窥女洗浴在线观看亚洲 | 久久受www免费人成_看片中文| 亚洲免费视频网站| 无码av免费网站| 久久99热精品免费观看牛牛| a级毛片免费完整视频| 中文字幕在线免费看线人| 99re6在线精品免费观看| 免费萌白酱国产一区二区三区| 亚洲一区AV无码少妇电影| 亚洲亚洲人成综合网络| 亚洲精品高清国产一线久久| 国产亚洲日韩在线三区| 可以免费观看的一级毛片| www.亚洲色图.com| 国产亚洲精品高清在线| 亚洲精品成人片在线播放| 精品久久久久久亚洲| 成人免费无码大片A毛片抽搐| 成年私人影院免费视频网站| 日韩精品视频免费网址| 可以免费观看一级毛片黄a | 国产美女在线精品免费观看| 日韩免费在线视频| 24小时日本电影免费看| 无码国产精品一区二区免费式芒果| 99精品免费观看| 好男人www免费高清视频在线| 国产免费久久精品久久久| 免费羞羞视频网站| 亚洲国产V高清在线观看| 成全视频免费高清| 亚洲AV成人潮喷综合网| 亚洲国产精品一区第二页| 亚洲国产精品综合福利专区| 18禁亚洲深夜福利人口| 亚洲狠狠色丁香婷婷综合| 亚洲欧美日韩综合俺去了| 久久亚洲精品国产亚洲老地址|