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 :

Insertion de String dans un objet Vector


Sujet :

Langage Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Insertion de String dans un objet Vector
    Bonjour

    Je suis actuellement en train de débugger une appli java, et je suis tombé sur un os : une méthode sensée remplir un tableau en vue d'être affiché par la suite utilise des Vector (objet dont je n'ai que peu de connaissance) dans lesquels sont insérés des String. Selon la doc java et les exemples que j'ai trouvé sur le net, cela ne devrait poser aucun problème. J'ai tout essayé : passer le type en Vector<String>, Vector<String[]>, Vector<Vector<String>>, rien n'y fait, j'ai toujours l'erreur suivante :

    The method add(Vector<String>) in the type Vector<Vector<String>> is not applicable for the arguments (String)
    Voici le code en question :

    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
     
    JTable remplirTable() {
        Vector<Vector<String>> tabLignes=new Vector<Vector<String>>(),
                               nomCols=new Vector<Vector<String>>();
        int i;
     
        try {
             //... requête sql
     
    	 ResultSet resultat = lienBd.executeQuery(requeteMysql);
    	 ResultSetMetaData md = resultat.getMetaData();
    	 nomCols = new Vector<Vector<String>>();
    	 for( i=1; i<=md.getColumnCount (); i++)
    	       nomCols.add(md.getColumnLabel(i));
    	 while( resultat.next()) { 
    	       Vector<Vector<String>> ligne=new Vector<Vector<String>>();
    	       for(i=1; i<=5; i++) 
    	       {
    	           String ch=resultat.getString(i);
    	           ligne.add(ch);
    	        }
    	        tabLignes.add(ligne);
    	 }
        }
        catch(Exception e) { 
    	 System.out.print("Erreur : "+e);
        }
        return new JTable(tabLignes,nomCols);		
    }
    Merci pour votre aide.

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Tu as l'erreur sur quelle ligne ?
    La variable "ligne" doit être déclarée en "Vector<String>".
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Points : 909
    Points
    909
    Par défaut
    Citation Envoyé par Nazgul59 Voir le message
    J'ai toujours l'erreur suivante :
    The method add(Vector<String>) in the type Vector<Vector<String>> is not applicable for the arguments (String)
    Voici le code en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Vector<Vector<String>> tabLignes = ...;
    [...]
    Vector<Vector<String>> ligne = ...;
    [...]
    String ch = ...;
    ligne.add(ch);
    [...]
    tabLignes.add(ligne);
    Avec l'instruction ligne.add(ch); tu essaies d'ajouter un objet de type String dans un Vector censé contenir des Vector<String>, d'où le message d'erreur.
    Avec l'instruction tabLignes.add(ligne); tu essaies d'ajouter un objet de type Vector<Vector<String>> dans un Vector censé contenir des Vector<String>, ce qui devrait t'attirer une nouvelle fois les foudres du compilateur...

    Si tu déclarais ligne comme étant de type Vector<String> ça marcherait sûrement mieux :
    - on ajoute ch, de type String, dans ligne de type Vector<String>
    - on ajoute ligne, de type Vector<String>, dans tabLignes de type Vector<Vector<String>>
    C'est tout de même nettement plus logique

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci, en passant nomCols et ligne en Vecteur<String> ça roule ! C'était en fait un problème d'incompréhension du script... Faut dire que ça marchait pas du tout à la base.

    Encore merci !

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

Discussions similaires

  1. Insertion documents word dans champ objet OLE sous VBA
    Par frankouche dans le forum Access
    Réponses: 4
    Dernier message: 20/12/2006, 21h35
  2. JPanel - Impossibilité d'inserer dans un objet Vector
    Par Adrien22 dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 30/03/2006, 10h38
  3. objets différents dans un même vector...
    Par Empty_body dans le forum Langage
    Réponses: 7
    Dernier message: 07/01/2006, 18h20
  4. Réponses: 3
    Dernier message: 19/11/2004, 21h48
  5. Réponses: 8
    Dernier message: 26/08/2004, 18h59

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