2013-08-06 52 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