最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java事件處理機(jī)制和適配器全面解析

 更新時(shí)間:2021年12月04日 11:17:25   作者:tuke_tuke  
這篇文章主要介紹了Java事件處理機(jī)制和適配器全面解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Java事件處理機(jī)制和適配器

最重要的是理解事件源,監(jiān)視器,處理事件的接口的概念。

1.事件源:是能夠產(chǎn)生時(shí)間的對(duì)象都可以叫事件源,比如文本框,按鈕,下拉列表之類的組件。

2.監(jiān)視器:事件源要產(chǎn)生事件,必須要有什么東西去監(jiān)視它,以便作出相應(yīng)啊,那就是監(jiān)視器,監(jiān)視器的作用是對(duì)事件源進(jìn)行監(jiān)視,以便對(duì)發(fā)生的時(shí)間進(jìn)行處理。

事件源通過(guò)相應(yīng)的方法注冊(cè)自己的監(jiān)聽(tīng)器。比如addListener(監(jiān)聽(tīng)器);

3.處理事件的接口:監(jiān)視器負(fù)責(zé)處理事件源發(fā)生的事件,監(jiān)視器是一個(gè)對(duì)象,為了處理事件源發(fā)生的事件,監(jiān)視器這個(gè)對(duì)象會(huì)自動(dòng)調(diào)用一個(gè)方法來(lái)處理事件。被調(diào)用的這個(gè)方法就是所說(shuō)的處理事件的接口中的方法。

java規(guī)定監(jiān)視器這個(gè)對(duì)象的類必須聲明實(shí)現(xiàn)相應(yīng)的接口, 即必須在類體重重寫接口中的所有方法,當(dāng)事件源發(fā)生事件事件時(shí),監(jiān)視器就會(huì)自動(dòng)調(diào)用被類重寫的接口方法。

處理事件示意圖

這里寫圖片描述

java常用的監(jiān)聽(tīng)接口

這里寫圖片描述

此外還有MouseMotionListener,MouseWheelListener,WindowFocusListener, WindowStateListener,監(jiān)聽(tīng)接口。

有時(shí)候監(jiān)聽(tīng)接口中有很多抽象方法,在實(shí)現(xiàn)接口的時(shí)候,需要重寫所有的方法,但是我們經(jīng)常只會(huì)用到其中的一個(gè)或兩個(gè),這無(wú)疑是一種勞累,多余。

于是就有了適配器類,出于簡(jiǎn)化的目的,每個(gè)還有多個(gè)方法的的監(jiān)聽(tīng)器接口都配有一個(gè)適配器類,這個(gè)類實(shí)現(xiàn)了接口中的所有方法,但是每個(gè)方法沒(méi)有做任何事情。

比如:

FocusAdapter,KeyAdapter,MouseAdapter,MouseMotionAdapter, WindowAdapter.

這就提供另一種方法,就是繼承適配器類,重寫其中的需要使用的方法,不必重寫全部的方法,簡(jiǎn)單方便。

class A extends WindowAdapter{
   pubilc void windowClosing(WinwEvent e){//重寫WindowAdapter中的方法
        //處理時(shí)間代碼
   }
}

Java事件適配器的作用

適配器

其實(shí)從接口事件演變爾來(lái)的。相當(dāng)于觸發(fā)器,說(shuō)簡(jiǎn)單點(diǎn),它就是一些動(dòng)作 。

例如說(shuō) 鼠標(biāo)的按下 點(diǎn)擊 還有鍵盤 等等。 適配器 就是實(shí)現(xiàn) 接口事件的類 不過(guò) ,不是真的實(shí)現(xiàn) ,只是空實(shí)現(xiàn) ,沒(méi)有具體的方法體。 適配器主要是為了方便程序員操作 ,避免了代碼的重復(fù)性。只要一個(gè)對(duì)象或者屬性添加了這個(gè)適配器, 那么它就會(huì)監(jiān)視這對(duì)象或?qū)傩?。例如說(shuō)一個(gè)按紐。

按紐添加一個(gè)MouseAdapter適配器, 并重寫里面的mouseClicked(MouseEvent e)方法。

public void mouseClicked(MouseEvent e) 
{
System.out.println("你點(diǎn)擊了鼠標(biāo)");
} 

當(dāng)你點(diǎn)擊按紐時(shí) 后臺(tái)就是打印 “你點(diǎn)擊了鼠標(biāo)”. 再說(shuō)明白點(diǎn) 就相當(dāng)你給按紐 添加了一個(gè)鼠標(biāo)對(duì)象。 你通過(guò) 鼠標(biāo) 就可以 產(chǎn)生對(duì)應(yīng)的動(dòng)作!

MouseAdapter實(shí)現(xiàn)了MouseListener,MouseWheelListener,MouseMotionListener接口,而方法都是為空,你可以重寫mouseClicked(MouseEvent e) 方法從而響應(yīng)鼠標(biāo)按鍵在組件上單擊事件,重寫mouseDragged(MouseEvent e)方法從而響應(yīng)鼠標(biāo)按鍵在組件上按下并拖動(dòng)事件等等。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • spring aop的簡(jiǎn)單使用方法詳解

    spring aop的簡(jiǎn)單使用方法詳解

    這篇文章主要介紹了spring aop的簡(jiǎn)單使用方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • java求最大公約數(shù)與最小公倍數(shù)的方法示例

    java求最大公約數(shù)與最小公倍數(shù)的方法示例

    這篇文章主要介紹了java求最大公約數(shù)與最小公倍數(shù)的方法,涉及java數(shù)值運(yùn)算的相關(guān)操作技巧,并附帶分析了eclipse環(huán)境下設(shè)置運(yùn)行輸入?yún)?shù)的相關(guān)操作技巧,需要的朋友可以參考下
    2017-11-11
  • Java虛擬機(jī)處理異常的最佳方式

    Java虛擬機(jī)處理異常的最佳方式

    這篇文章主要給大家介紹了關(guān)于Java虛擬機(jī)處理異常的最佳方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Idea如何去除Mapper警告方法解析

    Idea如何去除Mapper警告方法解析

    這篇文章主要介紹了Idea如何去除Mapper 警告的方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Java實(shí)現(xiàn)學(xué)生信息管理界面

    Java實(shí)現(xiàn)學(xué)生信息管理界面

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)學(xué)生信息管理界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • springboot整合jcasbin權(quán)限管理

    springboot整合jcasbin權(quán)限管理

    jcasbin的權(quán)限控制非常簡(jiǎn)單,本文就來(lái)介紹一下springboot整合jcasbin權(quán)限管理,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • JavaWeb項(xiàng)目中springmvc和tomcat對(duì)靜態(tài)文件的處理

    JavaWeb項(xiàng)目中springmvc和tomcat對(duì)靜態(tài)文件的處理

    這篇文章主要介紹了JavaWeb項(xiàng)目中springmvc和tomcat對(duì)靜態(tài)文件的處理 的相關(guān)資料,需要的朋友可以參考下
    2016-07-07
  • Spring MVC下 bootStrap服務(wù)器分頁(yè)代碼

    Spring MVC下 bootStrap服務(wù)器分頁(yè)代碼

    因?yàn)镾pring 對(duì)于ajax直接返回對(duì)象,到了WEB頁(yè)面就轉(zhuǎn)換成json 所以不需要使用JSON轉(zhuǎn)換封裝可以直接使用。接下來(lái)通過(guò)本文給大家分享Spring MVC下 bootStrap服務(wù)器分頁(yè)代碼,需要的的朋友參考下
    2017-03-03
  • JDBC連接MYSQL分步詳解

    JDBC連接MYSQL分步詳解

    JDBC是指Java數(shù)據(jù)庫(kù)連接,是一種標(biāo)準(zhǔn)Java應(yīng)用編程接口(?JAVA?API),用來(lái)連接?Java?編程語(yǔ)言和廣泛的數(shù)據(jù)庫(kù)。從根本上來(lái)說(shuō),JDBC?是一種規(guī)范,它提供了一套完整的接口,允許便攜式訪問(wèn)到底層數(shù)據(jù)庫(kù),本篇文章我們來(lái)了解MySQL連接JDBC的流程方法
    2022-03-03
  • Java深入探究關(guān)鍵字abstract的使用

    Java深入探究關(guān)鍵字abstract的使用

    如果一個(gè)方法使用 abstract 來(lái)修飾,則說(shuō)明該方法是抽象方法,抽象方法只有聲明沒(méi)有實(shí)現(xiàn)。需要注意的是 abstract 關(guān)鍵字只能用于普通方法,不能用于 static 方法或者構(gòu)造方法中
    2022-05-05

最新評(píng)論

宜兰市| 宁阳县| 平南县| 利川市| 舟曲县| 南部县| 那曲县| 格尔木市| 许昌县| 嵩明县| 尼玛县| 麻栗坡县| 台东市| 贡觉县| 苏州市| 哈密市| 犍为县| 壶关县| 砚山县| 南漳县| 金门县| 稷山县| 凤翔县| 克东县| 华亭县| 台前县| 忻城县| 兴城市| 松滋市| 德令哈市| 法库县| 马关县| 延庆县| 东辽县| 南部县| 通渭县| 苍南县| 岳池县| 通化县| 福清市| 保康县|