潘國(guó)榮
摘要:事件是Java Swing可視化開(kāi)發(fā)中一個(gè)非常重要和基礎(chǔ)的概念。該文就Swing組件編程中事件的概念、事件處理委托模型、常用事件及主要響應(yīng)方法作一論述。
關(guān)鍵詞: Java;事件;響應(yīng)方法
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)29-0125-02
1事件概念
在Java圖形用戶界面中,當(dāng)用戶進(jìn)行點(diǎn)擊命令按鈕、移動(dòng)鼠標(biāo)、按下或彈出鍵、關(guān)閉窗體等操作時(shí),都會(huì)產(chǎn)生事件。產(chǎn)生事件的對(duì)象是事件源,通常就是各個(gè)組件,例如按鈕。利用鼠標(biāo)、鍵盤(pán)對(duì)事件源的操作統(tǒng)稱為事件。對(duì)這些事件做出響應(yīng)的程序,稱為事件處理器。
2事件處理委托模型
在Java中,事件源產(chǎn)生事件之后,并不像其他編程技術(shù)那樣由事件源對(duì)象直接處理事件,而是委托給“第三方”進(jìn)行處理,這個(gè)“第三方”就是Java中的事件監(jiān)聽(tīng)器對(duì)象。這種處理事件的方式,稱為委托事件模型,它充分利用了接口設(shè)計(jì)的特點(diǎn),使得事件源和事件類設(shè)計(jì)和事件處理器類分離。事件監(jiān)聽(tīng)器能維護(hù)事件源的信息,能“監(jiān)聽(tīng)”、“遍歷”事件源產(chǎn)生的事件,能找到并執(zhí)行相應(yīng)的事件響應(yīng)方法。
3 主要事件
4事件處理的主要步驟
按照前述分析,在Java中,事件處理的主要步驟有3步:
1) 定義一個(gè)類,使該類實(shí)現(xiàn)事件對(duì)應(yīng)的監(jiān)聽(tīng)器接口;
2) 對(duì)事件源 (組件)產(chǎn)生的事件進(jìn)行注冊(cè)監(jiān)聽(tīng);
3) 重寫(xiě)(覆蓋) 監(jiān)聽(tīng)器接口中的事件處理方法。
事件響應(yīng)方法可以在本類、外部類實(shí)現(xiàn),也可以在內(nèi)部類、匿名類中實(shí)現(xiàn)。通過(guò)內(nèi)部類的方法,內(nèi)部類可以是匿名類,也可以不是匿名類,這種方法不需要聲明事件監(jiān)聽(tīng)器接口。
5 結(jié)束語(yǔ)
通過(guò)上述例程代碼可以看出,編制事件處理的響應(yīng)方法還是非常靈活的,通常情況下,如果程序要處理的比較復(fù)雜,可以在單獨(dú)定義的外部類中實(shí)現(xiàn),如果程序要處理的比較簡(jiǎn)單,在自身類中實(shí)現(xiàn)可能更為方便,初學(xué)者及開(kāi)發(fā)人員可以根據(jù)需要進(jìn)行選擇。
參考文獻(xiàn):
[1] 劉德山, 金百東. Java程序設(shè)計(jì)[M]. 北京: 科學(xué)出版社, 2012.
[2] 李鐘尉, 陳丹丹. Java項(xiàng)目開(kāi)發(fā)案例全程實(shí)錄[M]. 北京: 清華大學(xué)出版社, 2011.
【通聯(lián)編輯:光文玲】