日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java中接口适配器实现,12.1.8 Java中的应用-AWT事件适配器(接口的适配器模式)...

發布時間:2025/3/20 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中接口适配器实现,12.1.8 Java中的应用-AWT事件适配器(接口的适配器模式)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

12.1.8? Java中的應用-AWT事件適配器(接口的適配器模式)

從以上的學習我們已經了解到,基于接口的適配器模式是采用抽象化接口的方式,來達到節省接口函數的目的,這一特性特別適合于Java AWT中的事件處理模式。對于定義的事件監聽器接口,它可能包含多個事件處理函數,但在使用時我們往往只需要關注其中的某一種事件,此時就可以使用抽象化適配來將事件監聽器接口進行抽象化,給出每一個接口函數的默認實現,這樣在需要使用時只需要重寫自己需要的函數即可,如圖12-8所示。

從圖中可以看出,共分為3層:

***層是EventListener頂層事件接口類,它只是定義了一個接口,沒有包含任何接口函數。

第二層是AWT的事件監聽器接口(以Listener為結尾),每一個監聽器接口對應一種窗口事件,其中定義了多個事件處理函數。

第三層是AWT的事件適配器抽象類(以Adapter為結尾),它們分別為對應的監聽器接口提供了默認的函數實現。

所有的適配器抽象類都采用了接口的適配器模式來實現。例如,鼠標監聽器接口中定義了5個鼠標事件接口函數,如程序12-16所示。

程序12-16? 鼠標監聽器接口MouseListener.javapackagejava.awt.event;

importjava.util.EventListener;

publicinterfaceMouseListenerextendsEventListener?{

/**

*?鼠標單擊事件

*/

publicvoidmouseClicked(MouseEvent?e);

/**

*?鼠標按下事件

*/

publicvoidmousePressed(MouseEvent?e);

/**

*?鼠標釋放事件

*/

publicvoidmouseReleased(MouseEvent?e);

/**

*?鼠標進入事件

*/

publicvoidmouseEntered(MouseEvent?e);

/**

*?鼠標退出事件

*/

publicvoidmouseExited(MouseEvent?e);

}

當我們要使用該接口編寫鼠標事件處理代碼時,就需要實現該接口,并實現5個事件函數,如程序12-17所示。

程序12-17? 自定義的鼠標實現類importjava.awt.event.MouseEvent;

importjava.awt.event.MouseListener;

publicclassMyMouseListenerimplementsMouseListener?{

@Override

publicvoidmouseClicked(MouseEvent?arg0)?{

System.out.println("鼠標單擊事件");

}

@Override

publicvoidmousePressed(MouseEvent?arg0)?{

System.out.println("鼠標按下事件");

}

@Override

publicvoidmouseReleased(MouseEvent?arg0)?{

System.out.println("鼠標釋放事件");

}

@Override

publicvoidmouseEntered(MouseEvent?arg0)?{

System.out.println("鼠標進入事件");

}

@Override

publicvoidmouseExited(MouseEvent?arg0)?{

System.out.println("鼠標退出事件");

}

}

然而,我們可能只需要處理其中的某一個事件,卻不得不編寫所有的接口函數,此時就可以使用適配器類MouseAdapter了。

該適配器實現了3個鼠標相關的事件接口,并為這些接口中的所有函數都提供了默認的實現,這些實現的代碼為空,表示什么也不做,如程序12-18所示。

程序12-18? 鼠標事件適配器MouseAdapter.javapackagejava.awt.event;

publicabstractclassMouseAdapterimplementsMouseListener,

MouseWheelListener,?MouseMotionListener?{

publicvoidmouseClicked(MouseEvent?e)?{}

publicvoidmousePressed(MouseEvent?e)?{}

publicvoidmouseReleased(MouseEvent?e)?{}

publicvoidmouseEntered(MouseEvent?e)?{}

publicvoidmouseExited(MouseEvent?e)?{}

publicvoidmouseWheelMoved(MouseWheelEvent?e){}

publicvoidmouseDragged(MouseEvent?e){}

publicvoidmouseMoved(MouseEvent?e){}

}

此時如果我們只希望處理鼠標單擊事件,只需要繼承適配器MouseAdapter,

并重寫單擊事件函數mouseClicked()即可,如程序12-19所示。

程序12-19單擊事件處理程序MyMouseClickedListener.java

importjava.awt.event.MouseEvent;

importjava.awt.event.MouseAdapter;

publicclassMyMouseClickedListenerextendsMouseAdapter?{

@Override

publicvoidmouseClicked(MouseEvent?arg0)?{

System.out.println("鼠標單擊事件");

}

}

由此可見,通過使用事件的適配器,可以讓我們的代碼只關注自己的事件,而不必造成不必要的代碼浪費。這就是適配器模式在事件處理中的應用。

【責任編輯:董書 TEL:(010)68476606】

點贊 0

總結

以上是生活随笔為你收集整理的java中接口适配器实现,12.1.8 Java中的应用-AWT事件适配器(接口的适配器模式)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。