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

Langage Java Discussion :

concaténation de nom de variable


Sujet :

Langage Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 296
    Points : 144
    Points
    144
    Par défaut concaténation de nom de variable
    Bonjour

    il faudrait que je créé plusieurs variables de type string

    je voulais le faire dans une boucle pour pouvoir juste changer le nom
    de variable automatiquement

    je m'explique:

    dans une boucle on définit un incrément (i) pour ainsi à chaque tour de boucle créer une nouvelle variable

    ex: variable0 puis variable1 puis variable2 sont ainsi créer

    Mais comment concaténer le nom de la variable (variable avec la valeur de i)

    J'ai essayé ca mais ca marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    i=0;
    	while (i<11){
    	String[] ligne+'i' = new String[];
     
    	i++;
    	}
    Si quelqu'un avit déjà fait un truc de ce genre

  2. #2
    Membre éclairé
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Points : 756
    Points
    756
    Par défaut
    Tu peux utiliser la fonction concat() de la classe String.

    Tu castes d'abord ton entier en string et tu concatènes le produit de ton castage à la fin de ta string. C'est pas la meilleure solution mais c'est une solution

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    String[] liste = new String[11];
    for ( int i = 0; i < 11; i++ )
    {
       liste[i] = "variable" + i;
    }
    +A

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 296
    Points : 144
    Points
    144
    Par défaut
    en fait c'est le tableau qui se nomme liste que je veux créer plusieurs fois
    je veux créer un String[] liste1 puis String [] liste2 ... et ne pas touché au contenu pour le moment ((liste+i) comme nom de tableaux)

  5. #5
    Membre confirmé Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Points : 580
    Points
    580
    Par défaut
    Pour quoi faire ?, je vois pas tres bien l'utilité de creer des variables ainsi, et d'ailleurs, je doute que ce soit possible.

  6. #6
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 778
    Points
    5 778
    Par défaut
    Ce n'est pas possible (peut-être par reflexion mais j'ai des doutes).
    De toute façon je ne vois pas l'intérêt de la chose

    Pourquoi ne pas utiliser une simple List ?
    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
    List<String[]> lines = new ArrayList<String[]>();
    int i = 0;
    while(i<11) {
        // ...
        String[] currentLine = new String[size];
        // ...
        lines.add(currentLine);
        i ++;
    }
     
    for(int j = 0; j < lines.size(); j ++) {
        System.out.println("Ligne " + j);
        String[] currentLine = lines.get(j);
        // ...
    }

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 296
    Points : 144
    Points
    144
    Par défaut
    Bin en gros j'ai une JTable et on ne connait pas le nombre de ligne
    et ce code la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	i=0;
    			while (i<nbligne){
     
    			String[] ligne = new String[nbcolonne];
    			model.addRow(ligne);
    			i++;
    		}
    me permet de créer mon nombre de ligne que je veux mais
    malheureusement toute mes lignes s'appellent ligne et quand je vais remplir ma
    jTable mais ligne auront toutes le même contenu ( ce que je ne veu pas)

  8. #8
    Membre confirmé Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Points : 474
    Points
    474
    Par défaut
    Utilise alors une hashmap ! Tu peux associer un objet à une clé unique.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    hashmap.put( "ligne1", ligne1 ) ;
    hashmap.put( "ligne2", ligne2 ) ;
    hashmap.put( "ligne3", ligne3 ) ;
     
    ligne1 = hashmap.get( "ligne1" ) ;
    Ca répond à ta question ?

    Ce que tu veux faire est obscur, ou alors tu ne comprends pas bien ce qu'il est possible de faire avec Java.
    Tu dis que toutes tes lignes s'appellent ligne, ça veut rien dire ! Une ligne de jtable n'est pas désignable par un nom, mais par un n° de ligne dans le model.
    Le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    i=0;
    			while (i<nbligne){
     
    			String[] ligne = new String[nbcolonne];
    			model.addRow(ligne);
    			i++;
    		}
    fonctionne très bien ! Après, si tu veux accéder à la ligne 3 du tableau, tu fais model.getValueAt( n°colonne , 3 ).

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 296
    Points : 144
    Points
    144
    Par défaut
    Oui la je commancais à m'emmêler les pinceaux
    En fait c bon je créé les lignes avec le code précédant
    et je fais setValueAt pour remplir chaque cellule

    Merci pour votre aide

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 34
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par schniouf
    fonctionne très bien ! Après, si tu veux accéder à la ligne 3 du tableau, tu fais model.getValueAt( n°colonne , 3 ).
    Ok et si tu veux accéder à l'ID de l'élément genre pour construire une requête SQL derrière ?

  11. #11
    Membre confirmé Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Points : 474
    Points
    474
    Par défaut
    Citation Envoyé par catwomanette
    Ok et si tu veux accéder à l'ID de l'élément genre pour construire une requête SQL derrière ?
    Dans ce cas tu crées ton propre model, héritant de AbstractTableModel, et tu redéfinis la méthodes getValueAt (entre autres) pour qu'elle te renvoie ce que tu veux en fonction de la colonne.
    Si dans ton tableau tu veux afficher des objets Trucs avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class Truc {
       int id ;
       String name ;
       String descr ;
       [...]
    }
    Mais que tu ne veux afficher que le nom et la description des trucs, alors tu fais
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    public class TrucModel extends AbstractModel
    {
       // Liste des Truc : 1 Truc = 1 ligne du tableau
       List<Truc> datas = new ArrayList<Truc>() ;
     
       // Liste des noms des colonnes du tableau
       List<String> cols = new ArrayList<String>() ;
     
       public TrucModel () {
          // Nom des colonnes
          cols.add( "Nom du truc" ) ;
          cols.add( "Description du truc" ) ;
       }
     
       public void addTruc( Truc truc ) {
          datas.add( truc ) ;
          fireRowInserted( datas.size()-1, datas.size()-1 ) ;
       }
     
       public String getValueAt( int row, int col ) {
          // Si colonne du nom
          if ( col == 0 )
             return datas.get(row).getName() ;
          // Si colonne de la description
          else if ( col == 1 )
             return datas.get(row).getDescr() ;
          else
             return "" ;
       }
     
       public Truc getTrucAt( int row ) {
          return datas.get(row) ;
       }
     
       public void setValueAt( Object o, int row, int col ) {
          Truc truc = datas.get( row ) ;
          // Si colonne du nom
          if ( col == 0 )
            truc.setName( o.toString() ) ;
          // Si colonne de la description
          else if ( col == 1 )
             truc.setDescr( o.toString() ) ;
       }
     
       [...]
     
    }
    C'est pas testé, je n'ai pas mis toutes les méthodes à redéfinir, mais le principe est là : tu peux récupérer l'id du Truc sélectionné en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int id = trucModel.getTrucAt( table.getSelectedRow() ).getId() ;

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/05/2012, 09h24
  2. [Tableaux] Concaténer 2 noms de variables
    Par Sytchev3 dans le forum Langage
    Réponses: 7
    Dernier message: 03/08/2007, 14h11
  3. Réponses: 3
    Dernier message: 19/01/2007, 17h30
  4. [Tableaux] Concaténation du nom d'une variable
    Par nebule dans le forum Langage
    Réponses: 11
    Dernier message: 18/05/2006, 11h30
  5. [VBSCRIPT] concaténer 2 noms de variable
    Par wil4linux dans le forum ASP
    Réponses: 4
    Dernier message: 28/02/2006, 13h22

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