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

}

 

 

}

參考:  JAVA_SWT 事件的四種寫法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM