Fermer jframe, listener

Résolu
Messages postés
38
Date d'inscription
mercredi 6 avril 2005
Statut
Membre
Dernière intervention
13 mars 2006
-
Messages postés
38
Date d'inscription
mercredi 6 avril 2005
Statut
Membre
Dernière intervention
13 mars 2006
-
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

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
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>
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
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>
Messages postés
38
Date d'inscription
mercredi 6 avril 2005
Statut
Membre
Dernière intervention
13 mars 2006

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
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Hum, tu n'as pas de classe qui extend le JFrame ?

_

<spa></spa>
Messages postés
38
Date d'inscription
mercredi 6 avril 2005
Statut
Membre
Dernière intervention
13 mars 2006

non.

Sinon c'est quoi ton idee?
Messages postés
38
Date d'inscription
mercredi 6 avril 2005
Statut
Membre
Dernière intervention
13 mars 2006

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
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
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>
Messages postés
38
Date d'inscription
mercredi 6 avril 2005
Statut
Membre
Dernière intervention
13 mars 2006

merci.



empiret