溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java事件處理機(jī)制和適配器怎么使用

發(fā)布時(shí)間:2021-12-04 15:46:58 來源:億速云 閱讀:212 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“Java事件處理機(jī)制和適配器怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Java事件處理機(jī)制和適配器怎么使用”吧!

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)行處理。

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

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

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

處理事件示意圖

Java事件處理機(jī)制和適配器怎么使用

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

Java事件處理機(jī)制和適配器怎么使用

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

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

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

比如:

FocusAdapter,KeyAdapter,MouseAdapter,MouseMotionAdapter, WindowAdapter.

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

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

Java事件適配器的作用

適配器

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

例如說 鼠標(biāo)的按下 點(diǎn)擊 還有鍵盤 等等。 適配器 就是實(shí)現(xiàn) 接口事件的類 不過 ,不是真的實(shí)現(xiàn) ,只是空實(shí)現(xiàn) ,沒有具體的方法體。 適配器主要是為了方便程序員操作 ,避免了代碼的重復(fù)性。只要一個(gè)對(duì)象或者屬性添加了這個(gè)適配器, 那么它就會(huì)監(jiān)視這對(duì)象或?qū)傩?。例如說一個(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)”. 再說明白點(diǎn) 就相當(dāng)你給按紐 添加了一個(gè)鼠標(biāo)對(duì)象。 你通過 鼠標(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)事件等等。

到此,相信大家對(duì)“Java事件處理機(jī)制和適配器怎么使用”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI