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 :

Boucle pour acceder à des labels (id1, id2, id3)


Sujet :

Composants Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 256
    Points : 83
    Points
    83
    Par défaut Boucle pour acceder à des labels (id1, id2, id3)
    Bonjour,

    Je possède 5 labels (id1, id2, id3...)
    Et j'aimerais faire une boucle pour pour m'éviter de faire 5 fois la même chose.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for(i=1;i<6;i++){
           id[i].setText(i);
    }
    Bien évidement ce code ne fonctionne pas lol mais c'est juste un exemple.

    Merci de votre aide!

  2. #2
    Membre actif Avatar de MaitreKaio
    Profil pro
    Freelance Java / Web / Mobile
    Inscrit en
    Juin 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance Java / Web / Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2007
    Messages : 140
    Points : 240
    Points
    240
    Par défaut suggestion
    Est-ce-que tu veux travailler sur tous les textfields de ton écran ? Si c'est le cas, tu peux parcourir tous les composants de ton écran, tester s'il s'agit d'un textfield et si c'est le cas appliquer ton traitement.

    Si tu ne veux pas travailler sur tous les textfields, alors tu n'as pas le choix, tu dois gérer à la main une liste des textfields que tu veux traiter. Ou bien, si cela se justifie réellement, créer une sous-classe de JTextField disons MyTextField et appliquer la première solution non pas sur JTextField mais MyTextField.
    J'ai des questions à toutes vos réponses (Woody Allen)
    Mon entreprise: http://qi2-software.fr
    Mon blog Java: http://torrefacteurjava.fr
    Mon blog Pas Java: http://bloq.qi2-software.fr

  3. #3
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Le plus simple et le plus propre serait d'avoir effectivement une liste des JTextFields à modifier et de la parcourir.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 256
    Points : 83
    Points
    83
    Par défaut
    Merci de vos réponses.

    Alors déjà première erreur sur mon post (ce sont des labels et non des jTextfield ).
    Ensuite je ne sais pas comment en faire une liste, pourriez vous m'aider ?

    Mais il n'est pas possible de faire comme en VB : adresser les labels à l'aide d'une boucle en incrémentant tout simplement un compteur ?

    Merci encore de votre aide

    PS: J'utilise Netbeans pour créer les labels (je les renomme ensuite en id1, id2 ...).
    PS 2 : J'ai vu que l'on pouvais également utiliser "getComponent" mais j'aimerais avoir quelque chose de plus simple si possible

  5. #5
    Membre actif Avatar de MaitreKaio
    Profil pro
    Freelance Java / Web / Mobile
    Inscrit en
    Juin 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance Java / Web / Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2007
    Messages : 140
    Points : 240
    Points
    240
    Par défaut
    Si ton idée est d'avoir une variable x qui fait une boucle, de concaténer id et x, puis de récupérer le composant portant ce nom... En effet c'est possible aussi avec Java, mais probablement moins facile qu'en VB ( il faudrait utiliser la réflexion ) et surtout c'est sale. Il suffit qu'un jour quelqu'un nomme un champ différemment et c'est mort, par exemple.
    Le plus simple et le plus propre; c'est de gérer une liste. Dans ton écran, tu déclares ceci:
    Puis tu as une méthode quelque part qui va initialiser cette collection avec tous les labels que tu veux traiter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    labels= new ArrayList<JLabel>();
    labels.add(t1);
    ...
    labels.add(tn);
    Enfin, tu as ta méthode qui parcourt la collection pour effectuer le traitement voulu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public void effectueTraitements() {
    for (int i = 0; i < labels.size(); i++) {
    JLabel label = labels.get(i);
    label.setText(i);
    }
    }
    Comme ca ton code sera facile à maintenir si tu dois ajouter d'autre labels à traiter, ou si tu dois ajouter d'autre traitements spécifiques à ces labels.
    J'ai des questions à toutes vos réponses (Woody Allen)
    Mon entreprise: http://qi2-software.fr
    Mon blog Java: http://torrefacteurjava.fr
    Mon blog Pas Java: http://bloq.qi2-software.fr

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Question tres souvent posee (SVP penser a faire des recherches), la solution etant tout simplement d'utiliser une Map<String, JLabel> pour palier a ce probleme. Ainsi la bouche se contente de genere la cle permettant d'acceder a ce composant.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. Réponses: 8
    Dernier message: 25/08/2010, 08h06
  2. Boucles pour changer des valeurs
    Par adurand dans le forum Access
    Réponses: 7
    Dernier message: 29/01/2007, 17h45
  3. [Dates] Boucle pour creer des dates
    Par Konrad Florczak dans le forum Langage
    Réponses: 19
    Dernier message: 27/10/2006, 19h03
  4. [VBA-E] Boucle pour supression des dernieres cellules
    Par amd64 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 04/05/2006, 16h41
  5. boucle pour insérer des enregistrements
    Par roots_man dans le forum ASP
    Réponses: 7
    Dernier message: 05/10/2004, 09h28

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