<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 李貝 閱讀(1381) 評論(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无码v视频| 亚洲成AV人片在| 青柠影视在线观看免费高清 | 中文字幕一区二区三区免费视频| 免费永久在线观看黄网站| 另类小说亚洲色图| 亚洲第一成人影院| 精精国产www视频在线观看免费| www.999精品视频观看免费| 亚洲天堂中文字幕在线观看| 亚洲三级高清免费| 亚洲熟妇久久精品| 亚洲高清最新av网站| 波霸在线精品视频免费观看| 亚洲国产一区在线| 免费可以在线看A∨网站| 亚洲一区二区三区高清在线观看| 国产嫩草影院精品免费网址| 男性gay黄免费网站| 亚洲精品国产美女久久久| 91精品手机国产免费| 久久久久亚洲AV成人网| 国产伦精品一区二区免费| 久久精品国产亚洲av四虎| 无码国产精品一区二区免费虚拟VR| 亚洲日韩精品无码AV海量| 最近免费中文字幕高清大全 | 亚洲人xxx日本人18| 在线观看亚洲免费视频| 国产免费内射又粗又爽密桃视频 | 全黄性性激高免费视频| 天堂在线免费观看| 亚洲国产精品乱码在线观看97| 日本午夜免费福利视频| 两个人看的www免费高清| 亚洲成人高清在线观看| 免费大黄网站在线观| 免费毛片a线观看| 亚洲精华国产精华精华液| 最新亚洲成av人免费看|