JAVA SWT事件四種寫(xiě)法實(shí)例解析
一:匿名內(nèi)部類(lèi)寫(xiě)法
在一個(gè)組件下加入以下語(yǔ)句
text.addMouseListener(new MouseAdapter(){ public void mouseDoubleClich(MouseEVent e){ MessageDialog.openInformation(null,'','helloworld'):}})
這種方式是在事件內(nèi)部直接實(shí)現(xiàn)處理代碼,優(yōu)點(diǎn)是簡(jiǎn)單方便,但也存在缺點(diǎn)
①:事件處理代碼會(huì)分散的出現(xiàn)在各個(gè)部分,維護(hù)起來(lái)不方便;
②:如果代碼較長(zhǎng),閱讀和維護(hù)起來(lái)麻煩
③:當(dāng)工具欄、菜單欄也需要相同的行為時(shí),代碼無(wú)法重用,導(dǎo)致代碼臃腫
二:命名內(nèi)部類(lèi)寫(xiě)法:
text.addMouseListener(new MyMouseDoubleClick());...//定義MyMouseDoubleClick.javaprivate static final class MyMouseDoubleClick extends MouseAdapter{ public void mouseDoubleClick(MouseEvent e){ MessageDialog.openInformation(null,'','hello world')}}
三:外部類(lèi)寫(xiě)法:
這種方法與第二種方法類(lèi)似,只是有內(nèi)部類(lèi)變?yōu)閱蝹€(gè)外部類(lèi)
四:實(shí)現(xiàn)監(jiān)聽(tīng)器接口的寫(xiě)法:
將類(lèi)實(shí)現(xiàn)相應(yīng)的接口,這樣類(lèi)本身就成了一個(gè)監(jiān)聽(tīng)器,使得加入監(jiān)聽(tīng)器的代碼可以更簡(jiǎn)潔,這種方法適合加入監(jiān)聽(tīng)器的組件較多,且要求監(jiān)聽(tīng)器的事件處理代碼可以被組件共用,需要注意的是
事件方法和其他方法混合在一起,所以應(yīng)加一些注釋來(lái)說(shuō)明。沒(méi)用事件處理方法可以用空來(lái)實(shí)現(xiàn)。如果繼承了了相應(yīng)的事件適配器,則可根據(jù)需要寫(xiě)相應(yīng)的方法,另外需要注意,只有接口才有多繼承的特性,所以如果類(lèi)本身已經(jīng)是一個(gè)子類(lèi),則只有通過(guò)實(shí)現(xiàn)接口的方式來(lái)實(shí)現(xiàn)而不能繼承接口的適配器。
public class Helloworld extends MouseAdapter implements MouseListener{ public static void main(String[] args){ ....... Text text1=new Text(shell,SWT.Border); Text text2=new Text(shell, SWt.Border); text1.addMouseListener(this); text2.addMouseListener(this);} public void mouseDoubleClick(MouseEvent e){ MessageDialog.openInformation(null,'','hello world');}}}}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Docker 容器健康檢查機(jī)制2. CSS3實(shí)現(xiàn)動(dòng)態(tài)翻牌效果 仿百度貼吧3D翻牌一次動(dòng)畫(huà)特效3. vue 獲取url參數(shù)、get參數(shù)返回?cái)?shù)組的操作4. vue開(kāi)發(fā)chrome插件,實(shí)現(xiàn)獲取界面數(shù)據(jù)和保存到數(shù)據(jù)庫(kù)功能5. php判斷一個(gè)請(qǐng)求是ajax請(qǐng)求還是普通請(qǐng)求的方法6. Android View 事件防抖的兩種方案7. php實(shí)現(xiàn)斷點(diǎn)續(xù)傳大文件示例代碼8. python構(gòu)造IP報(bào)文實(shí)例9. JavaScript實(shí)現(xiàn)可拖拽的進(jìn)度條10. python datetime時(shí)間格式的相互轉(zhuǎn)換問(wèn)題
