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

Composants Java Discussion :

Problème avec un tableau de JLabel


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 21
    Par défaut Problème avec un tableau de JLabel
    Bonjour,


    J'ai un petit souci sur une appli Java avec un tableau de JLabel.

    Le problème se situe sur une page de l'application présentant un formulaire ayant une hiérarchie à 3 niveaux :

    Niveau principal (JLabel)
    Sous-niveau (JLabel[])
    Sous-sous-niveau (JCheckBox[])

    Les différentes données qui vont composer le formulaire sont chargées depuis une BDD. Une JComboBox permet de sélectionner le niveau principal, ensuite le formulaire se créer avec les différents sous-niveaux et sous-sous-niveaux relatifs au niveau principal sélectionné.

    Mon problème concerne les sous-niveaux : quand je sélectionne un niveau principal, au début les sous-niveaux correspondant s'affichent correctement sur le formulaire ; seulement lorsque je sélectionne un autre niveau principal (toujours via la JComboBox), les sous-niveaux précédemment affichés restent sur le formulaire et les nouveaux viennent s'accumuler derrières

    Ceci est un peu normal vu que je dois créer une instance de mon layout et de mon tableau de JLabel lors de l'événement de sélection d'un élément de ma JComboBox (afin d’initialiser le nombre de lignes nécessaire pour mon GridLayout et le nombre d’éléments dans mon JLabel[] (qui varient selon le nombre de sous-niveaux du niveau principal sélectionné)) :

    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
     
    panelCriteres = new JPanel();
    GridLayout layoutCriteres = new GridLayout(this.criteres.getCollection().size(), 1);
    panelCriteres.setLayout(layoutCriteres);
    JLabel labelCriteres[] = new JLabel[this.criteres.getCollection().size()];
     
    for (int i = 0 ; i < this.criteres.getCollection().size() ; i++)
    {
    	labelCriteres[i] = new JLabel(String.valueOf(this.criteres.getCollection().get(i))); // Ajout des libellés
    }	
     
    for (int j = 0 ; j < this.criteres.getCollection().size() ; j++) // Positionnement des JLabel
    {
    	panelCriteres.add(labelCriteres[j]);
    	labelCriteres[j].setBackground(Color.WHITE);
    }

    Comment pourrais-je procéder pour résoudre ce problème et faire en sorte que les JLabel des sous-niveaux ne s’accumulent pas sur le formulaire quand je sélectionne un niveau principal via ma JComboBox ?


    Merci d’avance pour vos réponses,
    Tom

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Et sinon, les JTree, ça ne t'intéresse pas?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 21
    Par défaut
    Salut,

    Merci pour ta réponse, je n'avais jamais utilisé les JTree mais après tests cela ne correspond pas à ce que j'ai besoin.

    En fait lorsque je sélectionne un autre niveau principal via la JComboBox, les JLabel générés précédemment restent à l'affichage et les nouveaux viennent s'accumuler derrière, et ainsi de suite si on sélectionne d'autres niveaux principaux.
    Ce qu'il faudrait, c'est faire en sorte que les JLabel générés se détruisent pour laisser place aux nouveaux. J'ai essayé avec les méthode removeAll(), remove(), repaint(), revalidate(), mais sans résultats

  4. #4
    Membre émérite Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Par défaut
    J'ai essayé avec les méthode removeAll(), remove(), repaint(), revalidate(), mais sans résultats
    removeAll() ne marche pas ?
    si tu nous postais un bout de code pour voir...

  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Normalement il faut daire suivre le removeAll d'un revalidate (tout ça sur le conteneur dans lequel sont situés les JLabels)

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 21
    Par défaut
    J'ai réécris mon code, le removeAll() et revalidate() fonctionnent.

    Merci

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 24/05/2006, 08h59
  2. Problème avec redimensionnement tableau
    Par PoZZyX dans le forum Réseau
    Réponses: 18
    Dernier message: 20/04/2006, 15h46
  3. Problème avec un tableau et saut de ligne
    Par ero-sennin dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 08/03/2006, 18h48
  4. Problème avec un tableau de tableau
    Par SubZero2 dans le forum Langage
    Réponses: 4
    Dernier message: 07/12/2005, 15h25
  5. problème avec un tableau dans un insert ...
    Par vbcasimir dans le forum Langage
    Réponses: 3
    Dernier message: 02/11/2005, 14h31

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