2009-01-27 48 views
0

我想編寫一個監視其他活動的組件,但是它的監聽器將在組件的窗口關閉時被刪除。JComponent如何通知其父J(內部)框架的關閉事件?

我不想多次寫這個刪除代碼,但希望組件自己處理它。 (我該怎麼做?

謝謝!

+0

你能解釋一下你的意思是「多次寫這篇移除代碼」和「組件來處理自身」 ? – 2009-01-27 01:49:58

回答

2

JFrame類(即窗口)具有processWindowEvent回調 這需要叫Windowevent

註冊這個回調一個參數,如果該參數是WINDOW_CLOSED 可以在裏面調用移除代碼。

最後,刪除代碼只寫入一次(如您所願)。

查看API瞭解更多詳情。

更新:參見this

+0

當我寫一個組件時,我怎樣才能把這個監聽器?我沒有引用JFrame,只有父組件。 – Szundi 2009-01-30 23:56:27

1

我會寫這樣的事情

class ListenToWindow 
extends WindowAdapter 
{ 
MyInternalFrame frame; 

public void windowClosed(event) 
    { 
    this.frame.removeAllTheRequiredListeners(); 
    } 
} 

(...) 
JFrame window; 
MyInternalFrame frame; 
(...) 
window.addWindowLister(new ListenToWindow(frame)); 
(...) 
相關問題