正如標題所示我有一個JPanel有兩個或兩個以上孩子的JPanel組件,我想鼠標事件傳播到所有的子組件。舉例來說,我有一個moused拖動的事件,它在其中一個子JPanel對象中繪製了一個矩形。我希望其他JPanel兒童能夠以同步方式繪製相同的內容。傳播鼠標事件將多個子組件同步繪畫行爲
第一個遇到的問題是,通常僅最上面的部件駐留「下面」鼠標事件接收特定鼠標事件,這使得感對於大多數應用的通知。我通過放棄通常使用的MouseListener路徑,並使用enableEvents()來啓用各種鼠標事件,然後覆蓋processMouseEvent()和processMouseMotionMotionEvent(),使得每個函數分配鼠標事件(通過修改座標從父座標)到每個孩子JPanel來繪製必要的。然而,我不確定我選擇的路線是否最好,並希望就此事提出更多意見。
我想要實現的另一個方法是重寫dispatchEvent(AWTEvent e)方法並通過調用每個子面板上的dispatchEvent將事件分派給每個子面板,但不幸的是dispatchEvent(AWTEvent e)不可覆蓋。
任何一般的援助將不勝感激。