Fermer jframe, listener [Résolu]

empiret 38 Messages postés mercredi 6 avril 2005Date d'inscription 13 mars 2006 Dernière intervention - 27 févr. 2006 à 17:07 - Dernière réponse : empiret 38 Messages postés mercredi 6 avril 2005Date d'inscription 13 mars 2006 Dernière intervention
- 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
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 28 févr. 2006 à 09:36
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>

Merci cs_DARKSIDIOUS 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

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

_

<spa></spa>
Commenter la réponse de cs_DARKSIDIOUS
empiret 38 Messages postés mercredi 6 avril 2005Date d'inscription 13 mars 2006 Dernière intervention - 28 févr. 2006 à 09:23
0
Merci
non.

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