簡體   English   中英

用Java處理事件:是否需要空事件處理程序

[英]Handling Events in Java: does it require empty event handlers

我放棄了Java的GUI構建器,現在我完全用代碼開發了它們(不是很費力,需要幾個小時的練習)。 現在,我要處理事件處理。

但是我發現當我嘗試使用一個類來實現某種類型的偵聽器時,例如

private class TextAction implements FocusListener
{
   public void focusGained(FocusEvent e)
   {
       responseTxt.setText("Got focus");
   }

   public void focusLost(FocusEvent e)
   {

   }

}

我必須為focusLost提供一個空的動作處理程序(如上所述),即使我不需要它也是如此,否則我會從編輯器得到一個討厭的圖,說這不是抽象類,並且不會覆蓋FocusLost方法,等等。

這是否意味着即使在程序中不使用動作時,動作處理程序也必須為與偵聽器關聯的每種事件類型顯示一個動作處理程序?

感謝您對此的任何幫助。

JDK中已經為所有標准偵聽器接口提供了基類。 這些類實現接口的所有方法,但在方法主體中不執行任何操作。 您只需將接口名稱從XyzListener更改為XyzAdapter即可獲得它們。

使用這些適配器,您只需覆蓋真正需要的方法:

private class TextAction extends FocusAdapter
{
   @Override
   public void focusGained(FocusEvent e) 
   { 
       responseTxt.setText("Got focus"); 
   } 
}

Java中的“事件”系統基本上是經過深思熟慮的。

所涉及的接口沒有什么特別的-與所有接口一樣,您需要實現其所有方法。

如果您只想實現其中的一些,則可以從關聯的Adapter類繼承,該Adapter類為您選擇不覆蓋的內容提供默認的什么都不做的實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM