IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Agents de placement/Fenêtres Java Discussion :

détruire une jframe


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 18
    Par défaut détruire une jframe
    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.

  2. #2
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    hello,

    en faisant comme ça ça doit marcher

    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
    ou alors

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

  3. #3
    Membre Expert Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Par défaut
    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

  4. #4
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 18
    Par défaut
    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é.

  5. #5
    Membre Expert Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Par défaut
    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) :
    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();
    ...
    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)

  6. #6
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 18
    Par défaut
    Pourquoi j'y ai pas pensé avant ! Merci encore à toi MONSIEUR NUKE_Y !

  7. #7
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Citation Envoyé par nuke_y
    Perso j'aurai ajouté ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // création 
      JFrame frame = new JFrame(); 
      frame.show();

    je crois que la méthode show() est devenue deprecated depuis le jdk 1.5 (faudrait plus trop l'utiliser)

  8. #8
    Membre Expert Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Par défaut
    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

  9. #9
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Par défaut
    Citation Envoyé par nuke_y
    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 ).

    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 )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment détruire une JFrame ?
    Par Benoit_T dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 09/07/2008, 16h38
  2. Interdire de redimensionner une JFrame
    Par java_math dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 06/06/2004, 14h59
  3. Maximiser une JFrame
    Par harold63 dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 02/06/2004, 14h19
  4. Je n'arrive pas à détruire une fenêtre
    Par CORREGE Frédéric dans le forum MFC
    Réponses: 6
    Dernier message: 22/02/2004, 21h28
  5. Faire une JFrame avec LookAndFeel
    Par aburner dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 03/12/2003, 09h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo