Закрытие всех возможных элементов, связанных с GUI - PullRequest
2 голосов
/ 11 февраля 2011

Есть ли способ закрыть (или получить дескриптор) все возможные окна, диалоги, приглашения и т. Д., Созданные с помощью Java?

У меня есть приложение, которое создает элементы GUI здесь и там (хотя оно автоматически запускает тесты и тому подобное), и иногда оно оставляет эти элементы открытыми. Я хотел бы иметь возможность закрыть все эти вещи из одного места.

Ответы [ 2 ]

4 голосов
/ 11 февраля 2011

Изменить. Я отсталый xP

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

Это даст вам каждый Window (родительский класс Frame, Dialog, JWindow, дедушка JFrame, JDialog и т. Д.).


Оригинал

Ну, , этот получает все открытые Frame. Я не думаю, что есть эквивалент для Dialog, но есть метод getOwnedWindows() для Window. Я не знаю, кому принадлежат диалоги, созданные с аргументом null Frame.

1 голос
/ 11 февраля 2011

Установите коллекцию и затем закройте каждый элемент.

РЕДАКТИРОВАТЬ:

Хорошо, вот пример, я не знаю, является ли 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);

вконструктор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...