1. 程式人生 > 程式設計 >JAVA SWT事件四種寫法例項解析

JAVA SWT事件四種寫法例項解析

一:匿名內部類寫法

在一個元件下加入以下語句

   text.addMouseListener(new MouseAdapter(){
      public void mouseDoubleClich(MouseEVent e){
     MessageDialog.openInformation(null,"","helloworld"):
}})

這種方式是在事件內部直接實現處理程式碼,優點是簡單方便,但也存在缺點

①:事件處理程式碼會分散的出現在各個部分,維護起來不方便;

②:如果程式碼較長,閱讀和維護起來麻煩

③:當工具欄、選單欄也需要相同的行為時,程式碼無法重用,導致程式碼臃腫

二:命名內部類寫法:

 text.addMouseListener(new MyMouseDoubleClick());
...//定義MyMouseDoubleClick.java
private static final class MyMouseDoubleClick extends MouseAdapter{
     public void mouseDoubleClick(MouseEvent e){
          MessageDialog.openInformation(null,"hello world")
}
}

三:外部類寫法:

這種方法與第二種方法類似,只是有內部類變為單個外部類

四:實現監聽器介面的寫法:

將類實現相應的介面,這樣類本身就成了一個監聽器,使得加入監聽器的程式碼可以更簡潔,這種方法適合加入監聽器的元件較多,且要求監聽器的事件處理程式碼可以被元件共用,需要注意的是

事件方法和其他方法混合在一起,所以應加一些註釋來說明。沒用事件處理方法可以用空來實現。如果繼承了了相應的事件介面卡,則可根據需要寫相應的方法,另外需要注意,只有接口才有多繼承的特性,所以如果類本身已經是一個子類,則只有通過實現介面的方式來實現而不能繼承介面的介面卡。

    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");}}
}
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。