Boucle for pour label ou autre

cs_Lorine Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 10 novembre 2009 - 6 juin 2009 à 00:12
cs_Lorine Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 10 novembre 2009 - 6 juin 2009 à 19:08
Bonjour voici mon problème
J'ai
20 label nommé LaX
20 label nommé LtX
20 textfield nommé TxX
mon problème est que je dois en java tous les mettre en setVisible(false)
est-ce possible et comment faire avec un boucle for? ce qui me donnerai trois boucle plutôt que 60 ligne

Merci

13 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
6 juin 2009 à 06:57
Salut,

Il te suffit de tous les ajouter à une liste lors de leur création tout simplement...
0
cs_Lorine Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 10 novembre 2009
6 juin 2009 à 09:14
Je suis plutôt novice et le code me parle mieux si possible
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
6 juin 2009 à 12:04
Tu déclare une liste, et t'y stocke tes contrôles :

List<JComponent> listeComposants = new LinkedList<JComponent>();

JLabel labelNom = new JLabel("nom");
tonPanel.add(labelNom); // ca c'est le code de création de tes labels par exemple
listeComposants.add(labelNom); // là tu ajoute aussi le label dans la liste des composants


Ainsi quand tu le veux :
for (JComponent component : listeComposants) {
component.setVisible(false); // et hop, le composant devient invisible
}
0
cs_Lorine Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 10 novembre 2009
6 juin 2009 à 12:16
y a t'il quelque chose a importé pour que cela fonction?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
6 juin 2009 à 12:47
Les classes de list et de linkedlist si tu ne les as pas déjà importé, forcément.
0
cs_Lorine Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 10 novembre 2009
6 juin 2009 à 13:21
Merci beaucoup ça fonction très bien

import java.util.List;
import java.util.LinkedList;
import javax.swing.JComponent;

    public void Nouveau()
    {
        List<JComponent> liste = new LinkedList<JComponent>();
        liste.add(La1);
        liste.add(La2);
        liste.add(La3);
        liste.add(La3);
        liste.add(La4);
        liste.add(La5);
        liste.add(La6);
        liste.add(La7);
        liste.add(La8);
        liste.add(La9);
        liste.add(La10);
        liste.add(La11);
        liste.add(La12);
        liste.add(La13);
        liste.add(La14);
        liste.add(La15);
        liste.add(La16);
        liste.add(La17);
        liste.add(La18);
        liste.add(La19);
        liste.add(La20);
        for (JComponent component : liste)
        {
          component.setVisible(false);
        }
    }
voila tout mon code au cas ou quelqu'un'un d'autre le rechercherai
0
cs_Lorine Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 10 novembre 2009
6 juin 2009 à 14:00
Si maintenant, je devais afficher, par un nombre X, une partie de ces labels

En connaissant X et avec une boucle for, comment me conseillerais-tu de procéder avec le même principe
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
6 juin 2009 à 14:54
Tes labels sont indéxés dans la liste, donc à toi de faire la boucle qu'il te faut, par exemple :

for (int i = 5; i < 10; i++) {
liste.get(i).setVisible(true);
}
0
cs_Lorine Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 10 novembre 2009
6 juin 2009 à 17:20
comme utilise le getText dans cette situation car moi il le refuse est-ce qu'il me manque une importation??
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
6 juin 2009 à 18:03
Pour utiliser la méthode getText, il faut caster les objets renvoyé par la List : Rappelle toi ta déclaration : la List contient des JComponent et non des JLabel !
0
cs_Lorine Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 10 novembre 2009
6 juin 2009 à 18:08
component.setVisible(false);
le seul détail qui change c'est que je veux en récupérer un bien précis je dois ajouter component[1].setVisible(false);
ou quelque chose dans le genre pour le getText?
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
6 juin 2009 à 18:53
Je te l'ai dit : regarde bien la déclaration de ton List (List<JComponent>, et non : List<JLabel>), du coup quand tu fais : taListe.get(1), ca te renvoie un JComponent et non un JLabel, il ne tient plus qu'à toi de caster l'objet renvoyé en JLabel (en étant sûr qu'il s'agit d'un JLabel et non un autre JComponent, sinon gare au ClassCastException) :
JLabel label = (JLabel) taListe.get(1);
0
cs_Lorine Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 10 novembre 2009
6 juin 2009 à 19:08
JLabel label = (JLabel) LtListe.get(iPoint);
Text3.setText(label.getText());
compris
désolé si la pièce met du temps a tombé mais j'ai besoin de beaucoup de ligne pour comprendre
en tout cas merci j'avance beaucoup grâce à toi
0
Rejoignez-nous