2013-08-06 83 views
-1

我有一個包含動態內容和JFrame的,當顯示

my_frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); 

幀是僅示出當用戶按下一個JButton和my_frame類只包含一個構造(對於拳頭時間調用)一個JFrame截距事件以及刷新其內容的刷新方法。 現在我想,當JFrame再次變得可見時,my_frame攔截事件並自動調用刷新方法。我該怎麼做?

+2

看看[如何寫窗口偵聽器(http://docs.oracle.com/javase/ tutorial/uiswing/events/windowlistener.html)和['WindowListener'](http://docs.oracle.com/javase/7/docs/api/java/awt/event/WindowListener.html),以獲得一些想法 – MadProgrammer

+0

'現在我想,當JFrame再次變得可見時'!='WindowListener'我的觀點 – mKorbel

回答

3

現在我想,當JFrame再次變得可見時,my_frame 會攔截事件並自動調用刷新方法。我怎麼能 我這樣做?

  • 很好的概念,很不錯的主意re_use一個Top-Level Container

  • 我建議使用JDialog(parent)代替JFrame

  • 你可以打電話給my_frame.setVisible(true),通過假設my_frame是宣佈並初始化爲變量

  • Window[] wins = Window.getWindows();返回Top-Level Container陣列,內部循環這個數組,你可以測試if (wins[i] instanceof JFrame) {中,然後調用wins[i].setVisible(true);

+0

謝謝。我發現爲了做我所需要的,只需添加一個ComponentListener並使用ComponentAdapter的componentShown方法來處理事件。 – giozh

+0

[查看更多內容](http://stackoverflow.com/questions/10880326/jpanel-which-one-of-listeners-is-proper-for-visibility-is-changed) – mKorbel