Fermer jframe, listener [Résolu]

Messages postés
38
Date d'inscription
mercredi 6 avril 2005
Dernière intervention
13 mars 2006
- - Dernière réponse : empiret
Messages postés
38
Date d'inscription
mercredi 6 avril 2005
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.
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
3
Merci
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>

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_DARKSIDIOUS
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
0
Merci
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>
Commenter la réponse de cs_DARKSIDIOUS
Messages postés
38
Date d'inscription
mercredi 6 avril 2005
Dernière intervention
13 mars 2006
0
Merci
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
Commenter la réponse de empiret
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
0
Merci
Hum, tu n'as pas de classe qui extend le JFrame ?

_

<spa></spa>
Commenter la réponse de cs_DARKSIDIOUS
Messages postés
38
Date d'inscription
mercredi 6 avril 2005
Dernière intervention
13 mars 2006
0
Merci
non.

Sinon c'est quoi ton idee?
Commenter la réponse de empiret
Messages postés
38
Date d'inscription
mercredi 6 avril 2005
Dernière intervention
13 mars 2006
0
Merci
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
Commenter la réponse de empiret
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
0
Merci
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>
Commenter la réponse de cs_DARKSIDIOUS
Messages postés
38
Date d'inscription
mercredi 6 avril 2005
Dernière intervention
13 mars 2006
0
Merci
merci.



empiret
Commenter la réponse de empiret

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.