<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

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

    主站蜘蛛池模板: 亚洲第一成年免费网站| 亚洲人成依人成综合网| 亚洲精品无AMM毛片| 国产精品免费观看| 亚洲欧洲春色校园另类小说| 国产午夜无码精品免费看动漫| 亚洲一区视频在线播放| 五级黄18以上免费看| 亚洲中文字幕无码专区| 伊人久久国产免费观看视频| 亚洲熟女乱综合一区二区| 久久久久久噜噜精品免费直播| 亚洲熟女少妇一区二区| 国产精品网站在线观看免费传媒| 亚洲AV日韩AV永久无码绿巨人 | 亚洲人成在线观看| 999久久久免费精品播放| 亚洲成人福利在线观看| 成人免费视频小说| 羞羞漫画登录页面免费| 中文字幕中韩乱码亚洲大片| 国产亚洲免费的视频看| 亚洲精品乱码久久久久久下载| 国产卡一卡二卡三免费入口| 亚洲AV无码XXX麻豆艾秋| 亚洲中文无韩国r级电影| 国产亚洲免费的视频看| 国产精品亚洲一区二区麻豆| 国产国产人免费人成免费视频| eeuss影院免费直达入口| 在线电影你懂的亚洲| 卡一卡二卡三在线入口免费| 一级成人a做片免费| 亚洲国产精品一区二区久| 国产真人无遮挡作爱免费视频 | 三上悠亚亚洲一区高清| 24小时免费看片| 在线观看国产一区亚洲bd| 国产av无码专区亚洲av桃花庵| 一本岛高清v不卡免费一三区| 免费一级特黄特色大片|