关闭所有可能的GUI相关元素

时间:2011-02-11 14:44:56

标签: java swing

有没有办法关闭(或获取句柄)用Java创建的所有可能的窗口,对话框,提示等?

我有一个应用程序,可以在这里和那里创建GUI元素(虽然它会自动运行测试等),有时它会打开这些元素。我希望能够从一个地方关闭所有这些东西。

2 个答案:

答案 0 :(得分:4)

编辑。我是弱智的xP

http://download.oracle.com/javase/6/docs/api/java/awt/Window.html#getWindows%28%29

这将为您提供每个WindowFrameDialogJWindow,祖父母JFrameJDialog等的父类


原始

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(本);

在构造函数中。