Fermer jframe, listener

Résolu
empiret Messages postés 38 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 13 mars 2006 - 27 févr. 2006 à 17:07
empiret Messages postés 38 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 13 mars 2006 - 28 févr. 2006 à 15:41
Bonjour.



Quand je lance mon programme, j'ouvre un JFrame.

A partir de ce JFrame je peux ouvrir d'autres JFrames. C'est comme "Word".

Quand je ferme une fenetre, je voudrais tester si elle est la derniere
ou la seule ouverte, si oui j'arrete le programme si non, je ferme
juste la fenetre courante.

Je sais que je dois utiliser windows listener:
 windowClosing, windowClose


Mais comment je fais pour faire mes testes
decrites ci-dessus? Si vous avez des methodes deja faites...je ne
dirai pas non.





Merci d'avance.

8 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
28 févr. 2006 à 09:36
Ben un truc du genre :

classe Feuille extends JFrame {

static int compteur

public Feuille() {
compteur++;
}
}

Ainsi ton compteur est incrémenté à chaque création d'une nouvelle instance de Feuille, et tu sais combien tu en a lancé, il te suffit juste de décrémenter le compteur à chaque fermeture de feuille.

_

<spa></spa>
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
27 févr. 2006 à 17:14
Il te faut un compteur static dans ta classe affichant la fenêtre que tu incrémente dans le constructeur, et que tu décrémente à chaque fois que le listener WindowClose se déclenche par exemple.

_

<spa></spa>
0
empiret Messages postés 38 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 13 mars 2006
27 févr. 2006 à 17:39
un compteur static dans quelle classe?

j'ai une classe contenant un main().

Le main cree un JFrame.

et c'est le JFrame qui cree un autre JFrame de meme classe.

Ou est-ce que je peux mettre le compteur? ma classe de main ne peux pas savoir combien de fenetre j'ai ouvert.



empiret
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
27 févr. 2006 à 18:07
Hum, tu n'as pas de classe qui extend le JFrame ?

_

<spa></spa>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
empiret Messages postés 38 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 13 mars 2006
28 févr. 2006 à 09:23
non.

Sinon c'est quoi ton idee?
0
empiret Messages postés 38 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 13 mars 2006
28 févr. 2006 à 10:06
Le probleme est que chaque JFrame peut creer des JFrame. Peut-etre qu'in JFrame a un compteur =0 mais son pere a un compteur =2.



empiret
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
28 févr. 2006 à 10:39
Une variable static dans une classe partage sa mémoire à TOUTES les instances de cette classe. Du coup, si tu incrémente la valeur de ton compteur, TOUT tes objets de type Feuille auront la même valeur. Donc qu'un objet de type Feuille crée 1 ou 15000 autre Feuille, tu aura toujours le nombre total d'objet crée.

_

<spa></spa>
0
empiret Messages postés 38 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 13 mars 2006
28 févr. 2006 à 15:41
merci.



empiret
0
Rejoignez-nous