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 :

Comment récupéer des informations d'un formulaire dans une ArrayList, puis les afficher dans une JTable


Sujet :

Composants Java

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 3
    Par défaut Comment récupéer des informations d'un formulaire dans une ArrayList, puis les afficher dans une JTable
    Bonjour,

    J'ai un formulaire qui me permet d'entrer les infos et j'ai deux boutons "ajouter" et "afficher". En cliquant sur "ajouter", je voudrais que les infos soient récupérées dans une liste avec des ArrayList et en cliquant sur "afficher", les informations de la liste s'affichent dans une JTable, mais je n'arrive pas à récupérer les informations pour les afficher dans la JTable.

    Merci d'avance

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Peux-tu nous montrer le code que tu as déjà fait, ça nous permettrait de mieux cerner le souci.

    Si je comprends bien tu as deux parties :
    1. saisir des informations dans un formulaire, et par le bouton "Ajouter", ajouter ces informations dans une liste. Déjà, là ce n'est pas très clair : tu parles de "une liste avec des ArrayList". C'est une List qui implémente concrêtement ArrayList, ou une List de ArrayList ?
    2. Ensuite, tu as besoin d'afficher ces informations dans une JTable. Quel est le souci ? Est-ce parce qu'une JTable, ou son modèle, ne prend en paramètre que des tableaux ou des Vectors, et que tu as une List en entrée, que ça te bloque ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 3
    Par défaut
    1. En fait, il s'agit d'une liste de Arraylist (comme objet de Arraylist)
    2. Ici c'est le fait que j'ai une liste en entrée que ça me bloque.


    Et je tiens à rappeler que je suis une débutante .
    Merci

    En ce qui concerne le code je dois le reproduire ici ? Il y a pas un moyen de joindre un fichier par exemple ?

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par noelann Voir le message
    En ce qui concerne le code je dois le reproduire ici ? Il y a pas un moyen de joindre un fichier par exemple ?
    Si, mais c'est préférable de le copier directement dans le message en le mettant entre balises CODE, comme indiqué ici.

    Citation Envoyé par noelann Voir le message
    Ici c'est le fait que j'ai une liste en entrée que ça me bloque.
    Si tu as une JTable déjà affichée, il te suffira de changer le modèle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    table.setModel(dataModel);
    Sinon il faudra créer là JTable directement à partir des données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JTable table = new JTable(data, colNames);
    ou à partir d'un modèle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JTabel table = new JTable(dataModel);
    Pour créer le modèle, il suffit, comme dans le cas de la création de table directement à partir des données, passer les données, exactement pareil :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableModel dataModel = new DefaultTableModel(data, colNames);
    Les paramètres data et colNames sont
    1. soit des tableaux d'Object
    2. soit des Vector


    Ton souci est que tu as une ArrayList : il faut donc la convertir soit en tableau, soit en Vector. Mais ce qui complique un peu la chose, c'est que tu as une liste de listes. Donc soit créer un tableau de tableaux, soit créer un Vector de Vector.

    1. Créer un Vector à part d'une List
      Un moyen simple de créer un Vector à partir d'une List est simplement d'utiliser son constructeur qui prend une Collection en argument :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Vector vector = new Vector( list ); // ou list est un List
      Mais tu ne peux pas faire çà avec ta List de List, parce que tu obtiendrais un Vector de List, et non un Vector de Vector. Il faut aussi donc convertir chaque sous-liste.

      Tu peux faire ça dans une simple boucle :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      List<List> listeDeListes = /*...*/; // ou List<ArrayList> peut-être dans ton cas (c'est pour ça que c'est utile de voir ton code pour répondre précisément)
      Vector data= new Vector();
      for(List sousListe : listeDeListes) { 
          data.add( new Vector(sousListe) ); // on ajoute à data la conversion de sousListe en Vector
      }
      // data est un Vector de Vector, donc on peut l'utiliser pour créer la JTable ou son modèle
    2. De même, on peut encore plus simplement convertir une List en tableau d'Object :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Object[] tableau = list.toArray();
      Pour obtenir un tableau de tableaux d'Object, on fera aussi une boucle. Mais pour créer un tableau, il faut connaître ses dimensions par avance. Le nombre de lignes, c'est facile, c'est le nombre de sous-listes dans la liste, donc la taille de la liste, qu'on obtient par sa méthode size(). Pour chaque ligne, on n'a pas besoin de le faire : comme on va remplir le tableau par une boucle, chaque ligne sera dimensionnée par la taille du tableau de chaque ligne. Mais comme on est obligé de donner une taille, on va dire que c'est 0 en attendant.

      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      List<List> listeDeListes  = /*...*/; // ou List<ArrayList> peut-être dans ton cas (c'est pour ça que c'est utile de voir ton code pour répondre précisément)
      Object[][] data= new Object[listDeListes.size()][0]; // on créer le tableau avec les bonnes tailles comme je viens d'écrire
      for(int i=0; i<listDeListes.size(); i++) { 
          data[i] = listeDeListes.get(i).toArray(); // on met dans data[i] la conversion de la sousListe en position i dans listeDeListe sousListe en tableau
      }
      // data est un tableau de tableaux, donc on peut l'utiliser pour créer la JTable ou son modèle


    Il existe d'autres moyens pour faire ces conversions, mais moins abordables pour un débutant. Pour l'instant, je pense que ça te suffira.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  2. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 11h37
  3. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  4. Réponses: 6
    Dernier message: 25/03/2002, 21h11

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