Bonjour tout le monde,
j'aimerais comment on détruit une jFrame. J'utilise this.dispose() lors de la fermeture mais apparemment, elle est pas détruite mais juste hidden.








Bonjour tout le monde,
j'aimerais comment on détruit une jFrame. J'utilise this.dispose() lors de la fermeture mais apparemment, elle est pas détruite mais juste hidden.
hello,
en faisant comme ça ça doit marcher![]()
ou alors
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 // création JFrame frame = new JFrame(); frame.setVisible(true); // destruction frame.setVisible(false); frame=null; // finitions System.gc(); // appel au garbage collector pour récupérer la mémoire de la fenetre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
Perso j'aurai ajouté ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 // création JFrame frame = new JFrame(); frame.show(); // destruction frame.dispose(); frame=null; // finitions System.gc(); // appel au garbage collector pour récupérer la mémoire de la fenetre








merci mais je dois la détruire dans une méthode de la classe héritant d'une jframe. lorsque je fais "this=null;", il me met une erreur : "cannot assign a value to final variable this", ce qui est normal.
En fait, j'ai une jframe qui construit une jframe(celle en question). le problème est que je ne peux pas accéder à la jframe mère pour lui dire qu'elle est fermé.
Bon de toutes façons la solution c'est celle qu'on t'a donné, maintenant comment l'appliquer à ton problème?
Tu as une JFrame A qui créée une JFrame B.
et tu voudrais depuis B détruire A c'est ça?
Il y a la solution (que je n'aime pas mais bon) de passer A à B au moment où tu créés B (dans ce cas B est une classe propre à toi héritant de JFrame) :
En espérant avoir répondu à ta question... (je sais pas si je suis bien carré là niveau pointeur et mémoire, que les spécialistes me corrigent)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 public class MaJFrame extends JFrame { JFrame a; ... public setParentFrame(JFrame a) { this.a = a; } public closeParentFrame() { this.a.dispose(); this.a=null; ... } ... } Puis : ... JFrame a = new JFrame("a"); JFrame b = new MaJFrame("nb"); b.setParentFrame(a); ... a=null; //ca j'en suis pas sur, a essayer. si ca pose probleme, l'enlever b.closeParentFrame(); ...








Pourquoi j'y ai pas pensé avant ! Merci encore à toi MONSIEUR NUKE_Y !![]()
Envoyé par nuke_y
je crois que la méthode show() est devenue deprecated depuis le jdk 1.5 (faudrait plus trop l'utiliser)
Merde !! Et pourquoi ?? après show(true) ils se débarrassent de show() ??? Pfff c'est pas possible ça.
Bientôt on va se retrouver avec des méthodes show2() comme le varchar2 dans les BDD
Par principe, et ce, depuis quelques années déjà, les propriétés des Bean ( graphique ou non ) doivent être modifiées par les accesseurs et mutateurs ( get & set ).Envoyé par nuke_y
Pourquoi faire frame.show() et button.setEnable(true) ?
show() est hérité de l'AWT et ne devrais plus être utilisé depuis le JDK 1.2
( langage plz )
Partager