2012-04-01 99 views
3

想知道創建一個需要處理鼠標點擊和按鍵的類的最佳實踐方法。顯然,在Java中不可能繼承多個類,所以目前我使用MouseListener和KeyListener接口,這意味着當我實際上只需要keyReleased和mouseReleased時,我的類中必須有很多空方法來滿足接口。需要'擴展'MouseAdapter和KeyAdapter

如果我可以使用MouseAdapter和KeyAdapter我可以擺脫這些方法,並有更乾淨的代碼。所以對於使用這些類的方法的任何建議都不會比我已經有的更混亂。

回答

6

您可以繼承其中一個Adapter類,然後實現其他接口。這樣你只需要做大約一半的工作。

我建議使用提供最多方法覆蓋的Adapter,以儘量減少您的工作。

如果您已經從其他東西繼承,那麼您顯然沒有選擇,只能實現這兩個接口。

2

可以擴展一個,然後使用「由代表團取代繼承」重構(在的IntelliJ,我認爲日食具有等效的)然後擴展其他

+0

+1。 – trashgod 2012-04-01 01:22:38

4

我打算冒昧地說,你不應該試圖將這個功能合併成一個班級,試圖這樣做可能是一個糟糕的設計決定。如果你說這是因爲它們都會煽動相同的動作,那麼通過所有的方法都有兩個控制類共享相同的模型,但另外創建單獨的類 - 一個用於處理鼠標交互,另一個用於處理鍵盤交互(和垃圾狀態,1+給他, - 使用密鑰綁定,而不是KeyListener)。

+0

這是優選的;使用'Action'來封裝通用功能。 – trashgod 2012-04-01 02:19:40