我已經開始嘗試創建正常的MVC Swing組件。我對M和C沒有任何問題,但V給我帶來了一個我通常無法解決的問題。 問題是:控制器是組件的主要類(例如MyComponent),它擴展了JComponent。 View是從ComponentUI類擴展的ui委託(MyCompanentUI)。委託所做的是在MyCompanent中添加JTextField,並在MyComponentModel和該字段之間提供數據綁定。它工作得很好。但是我怎樣才能將事件從JTextField綁定到MyComponent? 如果用戶想要處理某些事件,他會將偵聽器添加到MyComponent,但是所有由JTextField攔截的真實事件(鼠標,焦點,鍵等)都是關於哪個用戶不知道的。 那麼是否有任何正常的方法來做到這一點,除了捕捉事件並用手將其翻譯爲原始組件?或者還有另一種創建委託的方式,我真的完全錯了嗎?JComponent和ComponentUI委託之間的綁定事件
UPD:
感謝您的迴應,垃圾內容。 但我腦子裏有不同的東西。我在談論像「事件繼承」這樣的事情,就像「繼承PupupMenu」方法一樣。因此,那麼鍵,焦點或鼠標事件發生在組件本身並不處理它,而是直接將其轉移到父組件。但這似乎是不可能的,因爲我注意到JSpinner有完全相同的問題 - 你幾乎不能從這個組件獲得任何事件通知。
在'JSpinner'的特定情況下,您可以在'SpinnerModel'上註冊一個監聽器。更一般地說,您可以使用類似的[體系結構](http://java.sun.com/products/jfc/tsc/articles/architecture/)。 – trashgod 2012-07-13 17:30:58