Finalize ?

cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 - 18 nov. 2005 à 09:48
cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 - 18 nov. 2005 à 14:06
J'ai une fenetre pere, qui fait des fils au moment ou je tue un fils ça tue le pere mais les autres fils restent ouvert.



Plus en détail lorsque un fils se ferme, je fais this.finalize dans le
pere ? pourquoi est-ce que ça ne tue pas les autres fils ?



Vous avez une idée ?

6 réponses

cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 1
18 nov. 2005 à 09:50
Mais sans passé par des bidouillou parce que c'est pas cool je voudrais
une solution générique si vous en avez une ce serait sympa !
0
cs_ducheseb Messages postés 344 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 23 juin 2006 9
18 nov. 2005 à 09:56
Peux-tu donner un peu de code pour savoir comment tu crées tes fils à partir du père?
0
cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 1
18 nov. 2005 à 10:09
Ben j'ai une classe pere :

class pere {

public void traiter(){

// début boucle

JFrame frame = new JFrame("");

frame.setVisible(true);

// fin boucle

}



public unfilsFermer(){

this.finalize();

}

}

En réalité c'est pas des frames standard mais normalement ça ne doit rien changer ?

Moi j pensais qu'il y avait le principe de filiation dans Java ? A
moins que le Garbage collector pense que les instances ont toujours
leurs utilité ?

Pourtant une fois que cette méthode est effectué je suis sur que le pere est killé. Ca me semble vraiment bizarre :S
0
cs_ducheseb Messages postés 344 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 23 juin 2006 9
18 nov. 2005 à 11:28
Pour ma part, je n'utilise jamais finalize(). Finalize indique au garbage collector que l'objet peut être détruit, mais cela ne signifie pas qu'il le sera de suite.
Lorsque je veux fermer et détruire un objet, j'utilise dispose().

Dans ton cas, je ne penses pas qu'il faut que tu vérifies si l'objet est encore visible et que tu le détruises manuellement.
0

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

Posez votre question
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
18 nov. 2005 à 13:39
en fait tu veux finir tout ton programme qd tu ferme un fils ou tu veux fermer ta fenetre pere + les fenetres fils ?? (en gros est ce que cette frame pere est la seule de ton prog?? )
si c le cas t as qu a faire System.exit(0); (radical)

sinon t enregistre tous les fils que t ajoute ds une hashmap et sur chacun des fils tu fais dispose et sur la frame aussi et ca aura tt fermé
0
cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 1
18 nov. 2005 à 14:06
Ben c'est ce que je fais à peu de choses prêt puisque c'est un Vector
mais oui effectivement, c'est une solution par forcèment très
recommandable je trouve. C'est quand même dingue ça cette filliation à
la con .

Je ne veux pas quitter le programme sinon je ferais un exit() et la je suis sur que ça ferme tout, par contre
0
Rejoignez-nous