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 :

JPanel et Garbage Collector


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mars 2005
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2005
    Messages : 363
    Points : 210
    Points
    210
    Par défaut JPanel et Garbage Collector
    Bonjour,

    me revoilou. Pour ceux qui ont répondu à mes précédentes questions, encore merci, mais j'ai encore pas mal de pb avec les Layout, j'ai les ai compris mais j'arrive pas tout à fait à m'en servir, m'enfin bon ça viendre.

    Bon je ne suis pas là pour parler de ma vie, j'ai une question qui me turlupine comme on dit chez moi :

    j'ai une classe Frame qui va instancier un nouvel objet PersonPanel (extends JPanel) à chaque click sur un bouton par exemple. Ce panel (PersonPanel) possède divers Component. Lorsque je clique sur un des boutons de ce Panel, il effectue différentes tâches puis fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.setVisible(false);
    je n'ai donc plus accès à ce Panel, ce que je voulais. Maintenant, je m'interroge sur l'espace mémoire et le travail du Garbage Collector. Comment puis-je faire pour supprimer l'objet de la mémoire car le fait de rendre le panel invisible ne le détruit pas. (je suis obligé de créer un nouvel objet à chaque fois)

    Merci d'avance pour vos futures réponses.

    NB:je ferai plus court le prochain coup promis !!!

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Quels qu'ils soient, les objets sont supprimés lorsqu'il ne sont plus référencé... donc si tu veux que ton JPanel soit supprimé de la mémoire il faut également l'enlever du composant dans lequel il a été ajouté et mettre toutes les références à null...

    a++

  3. #3
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    bonjour,
    simple question : pourquoi es-tu obligé d'instancier un nouveau panel à chaque click bouton ? Ne pourrais-tu pas avoir seulement une instance de panel qui soit mise à jour à chaque click bouton ?
    bon, admettons donc que tu crées des instances de JPanel. A un instant donné, je suppose qu'une seule de ces instances est associé à la JFrame englobante ? Si tel est le cas, et si le panel n'est plus référencé par aucune variable de ton appli (ça devrait être le cas si tu réutilises la même variable pour créer tes instances successives), alors le GC va faire correctement son travail et libérer l'espace mémoire occupé par le panel, et par l'ensemble des attributs qui le composent (label, textfield, etc.) pour peu que ces derniers soient instanciés au moment de l'instanciation du panel lui-même et non référencés par ailleurs.

  4. #4
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mars 2005
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2005
    Messages : 363
    Points : 210
    Points
    210
    Par défaut
    Si ce PersonPanel (qui est un JPanel) appartient à un autre JPanel (appelons le grandp) et que je fais un , est-ce-que celà suffit à le déférencer?
    sachant qu'à la création je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grandp.add(new PersonPanel());

  5. #5
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    tout à fait !

  6. #6
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mars 2005
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2005
    Messages : 363
    Points : 210
    Points
    210
    Par défaut
    Citation Envoyé par herve91
    bonjour,
    simple question : pourquoi es-tu obligé d'instancier un nouveau panel à chaque click bouton ? Ne pourrais-tu pas avoir seulement une instance de panel qui soit mise à jour à chaque click bouton ?
    c'est parce que je fais appel à différents types de Panel en fonction de mes besoins.
    (c'est comme ça que j'ai vu mon pb, mais n'étant pas doué en Swing, je n'ai pas eu d'autres idées).

    Merci pour vos réponses rapides en tout cas.

  7. #7
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    l'autre idée c'est d'utiliser un CardLayout...

  8. #8
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mars 2005
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2005
    Messages : 363
    Points : 210
    Points
    210
    Par défaut
    je suis en galère avec les Layout, je les ai presque tous essayé et je n'arrive pas à trouver celui-qui me donnera pleinement satisfaction. J'ai en fait une frame divisée en 2 par un JSplitPane avec à gauche un Jtree (contenu dans un JScrollPane) et à droite un JPanel contenant 2 JPanel, un pour la description de l'élément cliqué et un pour les boutons (Ok,Suppr et Annuler), ces éléments sont gérés par un GridBagLayout.

    Y'a un truc que j'ai du mal à comprendre c'est que la taille des Panel empêche d'avoir nos Component à la taille désirée et j'ai beau faire setSize je n'arrive pas à changer ça.

  9. #9
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    setSize sur quoi ?
    avec un GridBagLayout, c'est la taille préférée des composants qui est prise en compte.

  10. #10
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mars 2005
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2005
    Messages : 363
    Points : 210
    Points
    210
    Par défaut
    que ce soit sur un des sous-panels de droite (gérés par un GridLayout) ou sur les composants, j'ai essayé le setPrefferdsize mais je n'ai rien obtenu de bien beau. De toute façon pas de panique mon projet n'est pas basé sur l'interface graphique, elle me sert juste à créer un fichier XML de configuration pour mon appli.

    Merci beaucoup pour toutes ces infos utiles.

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

Discussions similaires

  1. [JUnit] Setup, tearDown, garbage collector
    Par javaToBien dans le forum Tests et Performance
    Réponses: 2
    Dernier message: 23/01/2006, 17h29
  2. [JVM] Java 5 et Garbage Collector(Parralèle)
    Par ssaunois dans le forum Général Java
    Réponses: 6
    Dernier message: 28/11/2005, 23h42
  3. [JVM]Garbage collector
    Par godik dans le forum Général Java
    Réponses: 5
    Dernier message: 07/10/2005, 09h12
  4. [JVM] les objets et le Garbage collector
    Par Kurdran dans le forum Général Java
    Réponses: 7
    Dernier message: 02/06/2005, 16h57
  5. [Language]Garbage collector
    Par GETah dans le forum Langage
    Réponses: 2
    Dernier message: 23/03/2005, 15h18

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