有没有办法关闭(或获取句柄)用Java创建的所有可能的窗口,对话框,提示等?
我有一个应用程序,可以在这里和那里创建GUI元素(虽然它会自动运行测试等),有时它会打开这些元素。我希望能够从一个地方关闭所有这些东西。
答案 0 :(得分:4)
编辑。我是弱智的xP
http://download.oracle.com/javase/6/docs/api/java/awt/Window.html#getWindows%28%29
这将为您提供每个Window
(Frame
,Dialog
,JWindow
,祖父母JFrame
,JDialog
等的父类
原始
好this获取所有已打开的Frame
。我认为Dialog
没有相应的内容,但getOwnedWindows()
上有Window
方法。我不知道谁拥有使用null
Frame
参数构建的对话框。
答案 1 :(得分:1)
设置一个集合,然后关闭每个元素。
编辑:
好的,这是一个例子,我不知道ArrayList是否是最佳选择:
class Main{
public static final ArrayList<Window> containers = new ArrayList<Window>();
public static final void closeEverything(){
ListIterator<Window> list = containers.getListIterator();
while(list.hasNext()){
list.next().dispose();
}
}
}
然后,当您创建一个希望成为一次性的窗口时,您只需添加:
Main.containers.add(本);
在构造函数中。