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] supression de composants


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de vasilov
    Inscrit en
    Juillet 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 306
    Par défaut [JPanel] supression de composants
    bonjour,

    j'ai un JPanel que j'instancie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.add(new JPanelConnexion( this ), java.awt.BorderLayout.CENTER);
    avec JPanelConnexion le panel que j'ai créé.

    Maintenant j'aimerais l'enlever pour en mettre un autre à la place. est ce possible et comment faire?

    Merci pour vo réponses.

  2. #2
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Avec la méthode this.remove(Component comp).

  3. #3
    Membre éclairé Avatar de vasilov
    Inscrit en
    Juillet 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 306
    Par défaut
    et y a t il une possibilité lorsque l'on a instancié le panel avec new :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     add(new JPanel( ), java.awt.BorderLayout.CENTER);

  4. #4
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Citation Envoyé par vasilov
    et y a t il une possibilité lorsque l'on a instancié le panel avec new :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     add(new JPanel( ), java.awt.BorderLayout.CENTER);
    Cela me parait difficile puisque tu n'as pas de réference qui pointe sur ton objet JPanel...

  5. #5
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Tu peux toujours utiliser remove(int) mais pourquoi tu ne gardes pas tout simplement une référence à ton JPanel ?

    Genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class XXX extends XXX {
      private JPanel myPanel;
     
      //...
        this.add(myPanel = new JPanel(), BorderLayout.CENTER);
      //...
        this.remove(myPanel);
    }
    Remarque tu devrais essayer de faire this.add(nouveauPanel, BorderLayout.CENTER), je n'ai pas vérifié mais cela marche peut être.

  6. #6
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Regis.C : c'est possible sans référence en utilisant remove(int) et en passant l'indice du composant dans la hiérarchie.

  7. #7
    Membre éclairé Avatar de vasilov
    Inscrit en
    Juillet 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 306
    Par défaut
    Citation Envoyé par Gfx
    Remarque tu devrais essayer de faire this.add(nouveauPanel, BorderLayout.CENTER), je n'ai pas vérifié mais cela marche peut être.
    non ca ne marche pas,

    sinon je ne garde pas de référence car je n'ai plus besoin de ce panel par la suite.

  8. #8
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Citation Envoyé par Gfx
    Regis.C : c'est possible sans référence en utilisant remove(int) et en passant l'indice du composant dans la hiérarchie.
    L'indice du composant dans la hierarchie ???
    C'est-à-dire ?
    Tu m'interresses là !
    (j'adore apprendre de nouveaux trucs)

    Citation Envoyé par vasilov
    sinon je ne garde pas de référence car je n'ai plus besoin de ce panel par la suite.
    Ce n'est pas parce que tu n'a plus besoin d'un objet par la suite qu'il faut se contraindre à ne pas le réferencer...
    Le GC fera le menage...

  9. #9
    Membre éclairé Avatar de vasilov
    Inscrit en
    Juillet 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 306
    Par défaut
    j'ai essayé de le suprimer avec remove(int) mais impossible de trouver indice du composant dans la hiérarchie.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 221
    Par défaut
    Si ton panel se trouve dans un autre, tu peux donc le supprimer en utilisant remove(panelASupprimer) ou removeAll()
    ensuite repaint()
    ad(nouveauPanel)
    validate()

    A chaque fois il faut que ce soit le panel general qui execute les fonctions.

  11. #11
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Ben si tu as besoin du panel puisque tu veux le supprimer

  12. #12
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Citation Envoyé par Regis.C
    Citation Envoyé par Gfx
    Regis.C : c'est possible sans référence en utilisant remove(int) et en passant l'indice du composant dans la hiérarchie.
    L'indice du composant dans la hierarchie ???
    C'est-à-dire ?
    Tu m'interresses là !
    (j'adore apprendre de nouveaux trucs)
    [/quote]

  13. #13
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Regarde la doc de java.awt.Container. Tu peux faire des add() en donnant la position du composant dans la hiérarchie du conteneur, tu peux faire un getComponentAt(), etc.

    Par exemple si je fais :

    JPanel panel = new JPanel(new FlowLayout() /* inutile mais ça illustre */);
    panel.add(new JLabel("Hello"));
    panel.add(new JLabel("World"));

    Dans ce cas "Hello" est à l'indice 0 et "World" à l'indice 1.

  14. #14
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Bon à savoir !

    Merci Gfx !

  15. #15
    Membre éclairé Avatar de vasilov
    Inscrit en
    Juillet 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 306
    Par défaut
    finalement, ce que j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.remove(Component comp)
    car je ne pouvais plus mettre de composants dans le panel apres en removeAll.

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

Discussions similaires

  1. Savoir si un JPanel contient des composants
    Par phenix1988 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 08/12/2011, 08h56
  2. [JPanel] placement des composants
    Par nadsky dans le forum Agents de placement/Fenêtres
    Réponses: 10
    Dernier message: 30/06/2009, 15h14
  3. [Ultra debutant] ajout de composant dans un jpanel
    Par miniseb dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 13/05/2006, 19h27
  4. [Débutant]Jpanel et dessin de composants
    Par frabill dans le forum 2D
    Réponses: 3
    Dernier message: 16/02/2006, 19h00
  5. [JPanel] priorité de sélection de composants
    Par pierre.zelb dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 23/06/2005, 08h57

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