java swing 在父窗口关闭子窗口的方法

现在我用WindowBuilder写了个简单信息管理系统,有一个登录界面、主界面、信息管理界面,我在主界面里想添加一个【注销当前用户】的功能,可是一直未能实现在信息管理界面打开的情况下注销用户,就是只能关闭主界面并弹出登录界面,却未能同时把已打开的信息管理界面给一并关闭~

希望各位大侠给我提供下在父窗口实现关闭/注销子窗口的方法!!不懈感激~

在主界面的初始化语句里添加一条语句
如果主界面用的是JFrame jf = new JFrame();
那么就
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
这样子,点击这个界面的关闭按钮时就整个儿退出系统了。

如果只要关闭某几个窗口而不是所有窗口,那就在WindowListener的处理方法中关。追问

退出系统的已经实现,我现在要的就是在WindowListener里关闭子窗口的具体方法,麻烦告诉我具体是怎样的代码来实现的!!

追答

这个得有依赖,也就是说,
在事件监听器里,得有你所要关闭的窗口的引用。用JFrame的话,要想办法让父窗口持有新窗口的引用,这样才好在事件处理方法中关闭。
如果单单是在父窗口中new一个新窗口,然后就不管了,那样拿不到新窗口的引用,是不行的。
要这样,JFrame jf = new JFrame();
然后在事件处理中调用jf.dispose();就可以关闭。

如果新打开的窗口依赖于父窗口而存在,那么,请使用JDialog代替JFrame。
这样子,你在关闭父窗口的时候会一并把子对话框一并关掉。

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-15
这个应该不是关闭,而是隐藏,如果关闭的话,所有的窗体都会被关掉的。

在父窗体有得到子窗体的实例 。 setVisible(false);
就可以了。
第2个回答  2015-07-20

调用子窗口的dispose方法

cw.dispose();

相似回答