2 votes

Fermeture de tous les éléments possibles liés à l'interface graphique

Existe-t-il un moyen de fermer (ou d'obtenir une poignée) toutes les fenêtres, boîtes de dialogue, invites, etc. créées avec Java ?

J'ai une application qui crée des éléments d'interface graphique ici et là (pendant qu'elle exécute automatiquement des tests et autres) et parfois elle laisse ces éléments ouverts. J'aimerais pouvoir fermer tous ces éléments à partir d'un seul endroit.

4voto

KitsuneYMG Points 7604

Éditer. Je suis un retardé xP

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

Cela vous donnera tous les Window (classe parentale de Frame , Dialog , JWindow Grand-parent de JFrame , JDialog etc).


Original

Bien este obtient tous les Frame qui sont ouverts. Je ne pense pas qu'il y ait un équivalent pour les Dialog mais il y a le getOwnedWindows() méthode sur Window . Je ne sais pas qui est propriétaire des dialogues construits avec une null Frame argument.

1voto

Définissez une collection et faites-lui fermer chaque élément.

EDITAR:

Ok, voici un exemple, je ne sais pas si ArrayList est le meilleur choix ici :

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

Ensuite, lorsque vous créez une fenêtre que vous souhaitez rendre jetable, il vous suffit d'ajouter :

Main.containers.add(this) ;

dans le constructeur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X