JAVA SWT事件四種寫法實例解析
一:匿名內部類寫法
在一個組件下加入以下語句
text.addMouseListener(new MouseAdapter(){
public void mouseDoubleClich(MouseEVent e){
MessageDialog.openInformation(null,"","helloworld"):
}})
這種方式是在事件內部直接實現(xiàn)處理代碼,優(yōu)點是簡單方便,但也存在缺點
①:事件處理代碼會分散的出現(xiàn)在各個部分,維護起來不方便;
②:如果代碼較長,閱讀和維護起來麻煩
③:當工具欄、菜單欄也需要相同的行為時,代碼無法重用,導致代碼臃腫
二:命名內部類寫法:
text.addMouseListener(new MyMouseDoubleClick());
...//定義MyMouseDoubleClick.java
private static final class MyMouseDoubleClick extends MouseAdapter{
public void mouseDoubleClick(MouseEvent e){
MessageDialog.openInformation(null,"","hello world")
}
}
三:外部類寫法:
這種方法與第二種方法類似,只是有內部類變?yōu)閱蝹€外部類
四:實現(xiàn)監(jiān)聽器接口的寫法:
將類實現(xiàn)相應的接口,這樣類本身就成了一個監(jiān)聽器,使得加入監(jiān)聽器的代碼可以更簡潔,這種方法適合加入監(jiān)聽器的組件較多,且要求監(jiān)聽器的事件處理代碼可以被組件共用,需要注意的是
事件方法和其他方法混合在一起,所以應加一些注釋來說明。沒用事件處理方法可以用空來實現(xiàn)。如果繼承了了相應的事件適配器,則可根據(jù)需要寫相應的方法,另外需要注意,只有接口才有多繼承的特性,所以如果類本身已經是一個子類,則只有通過實現(xiàn)接口的方式來實現(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");}}
}
}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
使用python操作lmdb對數(shù)據(jù)讀取的實例
這篇文章主要介紹了使用python操作lmdb對數(shù)據(jù)讀取的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12
pandas將Series轉成DataFrame的實現(xiàn)
本文主要介紹了pandas將Series轉成DataFrame的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-01-01
python?requests實現(xiàn)上傳excel數(shù)據(jù)流
這篇文章主要介紹了python?requests實現(xiàn)上傳excel數(shù)據(jù)流,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02

