有沒有方法可以關閉(或獲取句柄)所有可能的窗口,對話框,提示等用Java創建的?關閉所有可能的GUI相關元素
我有一個應用程序可以在這裏或那裏創建GUI元素(雖然它會自動運行測試等),有時會使這些元素打開。我希望能夠從一個地方關閉所有這些東西。
有沒有方法可以關閉(或獲取句柄)所有可能的窗口,對話框,提示等用Java創建的?關閉所有可能的GUI相關元素
我有一個應用程序可以在這裏或那裏創建GUI元素(雖然它會自動運行測試等),有時會使這些元素打開。我希望能夠從一個地方關閉所有這些東西。
編輯。我是德智障XP
http://download.oracle.com/javase/6/docs/api/java/awt/Window.html#getWindows%28%29
這會給你的每Window
(的Frame
,Dialog
,JWindow
父類的JFrame
,JDialog
祖父母等)。
原始
好this得到所有的Frame
S中的開放的。我不認爲Dialog
的等價物有效,但Window
上有getOwnedWindows()
方法。我不知道誰擁有與null
Frame
論點構建的對話框。
設置一個集合,然後關閉每個元素。
編輯:
好吧,這裏是個例,我不知道,如果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(this);
在構造函數中。
呃?...我不關注。 – JHollanti 2011-02-11 14:49:08
這假定你自己註冊所有的窗口?這意味着所有創建的對話框還需要在用戶代碼中註冊? – extraneon 2011-02-11 14:59:07