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

avec Java Discussion :

Portée d'une variable Object[][] maVar


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 21
    Points : 21
    Points
    21
    Par défaut Portée d'une variable Object[][] maVar
    Bonjour à toute la communauté

    Je vous explique mon petit problème :

    J'essaie de remplir un tableau à partir du résultat d'une requête, rien de bien méchant voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    while(requete.next()){
    	Object[][] data = {
                  {requete.getInt("CodeM"),
                    requete.getString("Description"),
                    requete.getString("Type")}
    	};
    }
     
    String title[] = {"CodeM","Description","Type"};
    table = new JTable(data,title);
    Sauf que lorsque je déclare ma variable "table", il ne voit pas "data" et si je déclare "table" dans ma boucle ca fonctionne mais je ne récupère que la dernière ligne

    Si quequ'un avait une petite idée, ca ne doit pas être grand chose mais ca m'échappe

  2. #2
    Rédacteur/Modérateur

    Avatar de alain.bernard
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Décembre 2011
    Messages
    749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 749
    Points : 5 219
    Points
    5 219
    Par défaut
    Bonsoir,

    La variable data est déclarée dans ta boucle "while", elle n'est donc visible que dans cette boucle. Déclare-là à l'extérieur pour l'initialiser correctement. De même, si tu mets ta ligne "table=..." dans la boucle, tu instancies l'objet table à chaque itération d'où problème (en sortie, ton "table" contient la dernière instanciation, avec le dernier objet "data" créé).
    Essayes avec :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    List<Object[]> data = new ArrayList<Object[]>();
    while(requete.next()){
    	data.add(new Object[] {
                  requete.getInt("CodeM"),
                    requete.getString("Description"),
                    requete.getString("Type")});
    }
     
    String title[] = {"CodeM","Description","Type"};
    table = new JTable(data.toArray(),title);

    Tu es "obligé" d'utiliser une liste dans ton cas car tu ne sais pas à l'avance combien d'éléments va te retourner ta requête, tu as donc besoin d'un objet de taille dynamique
    Pas de messages techniques par MP, les forums sont là pour ça.
    Rédacteur d'articles sur la plateforme Eclipse

    N'oubliez pas de consulter les FAQ Eclipse et les cours et tutoriels Eclipse

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 21
    Points : 21
    Points
    21
    Par défaut
    Salut !

    Merci pour cette réponse rapide !

    Je viens d'essayer ta solution, cela fonctionne excepté lorsque je déclare table il me dit que le constructeur (Object[], String[]) n'est pas définie. Il me propose de le déclaré sans argument ou de caster data.toArray() en Object[][].

    Cyril

  4. #4
    Rédacteur/Modérateur

    Avatar de alain.bernard
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Décembre 2011
    Messages
    749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 749
    Points : 5 219
    Points
    5 219
    Par défaut
    Salut,
    Oui il faut que tu donnes le type de retour que tu souhaites dans la méthode toArray, comme suit :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Object[][] rowData = data.toArray(new Object[data.size()][]);

    A+
    Pas de messages techniques par MP, les forums sont là pour ça.
    Rédacteur d'articles sur la plateforme Eclipse

    N'oubliez pas de consulter les FAQ Eclipse et les cours et tutoriels Eclipse

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 21
    Points : 21
    Points
    21
    Par défaut
    Salut,

    Oui effectivement cela fonctionne bien de cette manière.

    Merci beaucoup.

Discussions similaires

  1. Porté d'une variable
    Par koolkris dans le forum Delphi
    Réponses: 3
    Dernier message: 08/03/2007, 20h29
  2. Portée d'une variable dans une boucle FOR ?
    Par Neo41 dans le forum C++
    Réponses: 20
    Dernier message: 17/11/2006, 11h14
  3. Initialisation d'une variable Object
    Par bobic dans le forum Langage
    Réponses: 2
    Dernier message: 08/09/2006, 17h21
  4. [XSLT] pb portée d'une variable
    Par NPortmann dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 23/05/2006, 15h53
  5. Portée d'une variable globale
    Par Giill dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 27/12/2005, 10h13

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