# Java > Interfaces Graphiques en Java > AWT/Swing >  dtecter la fermeture de la fentre

## sepas

Salut,

voici un extrait du code d'une petite application o Scenario est un JFrame :



```

```

Ce que je voudrais, c'est que lorsque l'utilisateur ferme le scenario, la methode doIt() lui demande de choisir un autre fichier.
Ce que j'ai fait ne marche pas, car l'appel  scenario.dispose() ne suffit pas  rendre scenario null.

Comment dois-je faire pour informer le thread principal que la fentre scenario a t ferme par l'utilisateur ?

----------


## Balbuzard

Si je comprends bien, lors de la fermeture de ta fentre, tu veux qu'il y ait affichage d'une autre fentre pour que l'utilisateur continue de faire quelque chose.

A ta place, je ferais tendre ma classe de WindowListener. Cette interface propose une mthode windowClosed.

va ici si tu veux voir l'api java

lorsque ta fentre est ferme, la mthode windowClosed s'excute, et en la surchargeant, tu peux demander  ce qu'une autre fentre s'ouvre.

Enfin, pour fermer une fentre, j'utilise plutt :



```
maFenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
```

qui marche mieux

Voil, j'espre t'avoir aid :-)

----------


## visiwi

> l'appel  scenario.dispose() ne suffit pas  rendre scenario null.


Un dispose() est fait pour dtruire une fentre, pas pour rendre ton objet null.

Pour maFenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ce n'est peut-tre pas ce que tu cherche car cela fermera compltement ton application.

Je suis assez d'accord avec le WindowListener. 

Voici un exemple qui peut-tre t'aidera :


```

```

----------


## Balbuzard

En effet, si tu as deux fentres et que si l'une d'elles tu excutes la mthode 



```

```

alors, toute ton application se fermera. Il faut que tu vrifies combien il reste de JFrame ouverte et si il n'y en plus qu'une seule, l'excuter, sinon, faire 



```

```

:-)

----------


## sepas

Bon, regardez comment je m'en sors avec un windowListener.
Lorsque la fenetre scenario est ferme, elle le signale au thread principal :



```

```

Lorsque le thread principal constate la fermeture du scenario, il propose l'ouverture d'un autre.
Si l'utilisateur abandonne, alors l'application quitte.



```

```

Ca marche, mais est-ce qu'il n'y a pas un inconvnient que je n'aurais pas vu  s'y prendre comme a, en particulier du point de vue des threads ?

----------

