我想創建一個「通用」 JPanel
它可以在任何上級Window
類的呈現(JFrame
,JDialog
,或JInternalFrame
是有些精確。)如何將一個JPanel鉤入父代/祖先容器的windowClosing/Closed監聽器?
我希望能夠「清理」該窗口不再在屏幕上呈現時的一些靜態值。通常,我會在創建JFrame
期間用Window
類(如JFrame
)和addWindowListener
以及正確的windowClosing
或windowClosed
方法完成此操作。
由於我希望Window
類中的任何一個能夠呈現此類,我甚至不知道要添加哪種類型的偵聽器,也不知道要將其添加到哪個窗口。
有沒有辦法'掛鉤'的JPanel
的實現和渲染,以便我可以添加我的關閉掛鉤無論Window
類呈現它?
(我看着PropertyChangeListener
,但componentShown
不會對JPanel
渲染觸發。)
任何幫助,將不勝感激。
當封閉窗口關閉時,componentHidden不會被「拋出」,我猜是因爲組件/ JPanel本身沒有更改其可見性屬性。它不再呈現。不過,我會研究HierarchyListener。 –
我相信HierarchyListener是比AncestorListener更好的解決方案。效果很好。謝謝,傑夫。 –