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 :

de ArrayList vers JTable


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Par défaut de ArrayList vers JTable
    bonjour ,
    je cherche comment récupérer des info depuis une ArrayList et les mettre en JTable lorsque je click sur un bouton ,
    j'ai 2 classe : Personne qui contient les info d'une personne et Stockage qui contient une ArrayList des personne :

    class_Personne :

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    public class class_personne {
       private String Nom;
       private String Prenom;
       private String Adresse ; 
       private Date DateNaissance ;
       public static int c =0 ;
        public class_personne(String Nom, String Prenom, String Adresse, Date DateNaissance) {
            this.Nom = Nom;
            this.Prenom = Prenom;
            this.Adresse = Adresse;
            this.DateNaissance = DateNaissance;
            c++;
        }
     
        public String getNom() {
            return Nom;
        }
     
        public void setNom(String Nom) {
            this.Nom = Nom;
        }
     
        public String getPrenom() {
            return Prenom;
        }
     
        public void setPrenom(String Prenom) {
            this.Prenom = Prenom;
        }
     
        public String getAdresse() {
            return Adresse;
        }
     
        public void setAdresse(String Adresse) {
            this.Adresse = Adresse;
        }
     
        public Date getDateNaissance() {
            return DateNaissance;
        }
     
        public void setDateNaissance(Date DateNaissance) {
            this.DateNaissance = DateNaissance;
        }
     
       public int getAge()
       { 
           Date d1 = new Date();  
    //        long a= d1.getTime()-this.DateNaissance.getTime();
            //int b=(int)a/(1000*60*60*24*30*12);
    //            return b;
          int c= d1.getYear()-DateNaissance.getYear();
          return c ;
       }
    }
    Stockage :

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    public class Stockage {
     
        public static ArrayList <class_personne> lp = new ArrayList<class_personne>();
        public static int c = 0;
       public  static boolean exist(String n)
        {
           boolean t=false;
           for (int i=0;i<lp.size();i++){
               if (lp.get(i).getNom().equals(n)){
                 t=true; 
                   System.out.println(" ça existe ");
               }
           }
           return t;
        }
       public static void ajouter(class_personne p)
        {
            lp.add(p);
            c++;
        }
       public  static void supprimer(String n)
        {
            for(int i=0 ; i <lp.size() ; i++)
            {
                  if(n.equals(lp.get(i).getNom()))
    //            if(lp.get(i).getNom().contains(s)) 
                {
                    lp.remove(i);
                  }
            }
        }
       public  static void rechercher(String s,class_personne pers)
        {
            for( int i = 0 ; i< lp.size() ; i++)
            {
              if(lp.get(i).getNom().equals(s))
    //            if(lp.get(i).getNom().contains(s)) 
                {
                     pers.setNom(lp.get(i).getNom());  
                     pers.setPrenom(lp.get(i).getPrenom());
                     pers.setAdresse(lp.get(i).getAdresse());
                     pers.setDateNaissance(lp.get(i).getDateNaissance());
     
                }
            }
            //------------------------------------
    //        Iterator i = lp.iterator();
    //        while(i.hasNext())
    //        {
    //            System.out.println(i.next()); 
    //            pers.setNom(lp.get(i).ge);
    //        }
        }
       public  static void modifier(String nom, class_personne pers)
        {
            for (int i = 0 ; i<lp.size(); i++)
            {
                if(lp.get(i).getNom().equals(nom))
                {
                    lp.get(i).setNom(pers.getNom()); 
                    lp.get(i).setPrenom(pers.getPrenom());
                    lp.get(i).setAdresse(pers.getAdresse());
                    lp.get(i).setDateNaissance(pers.getDateNaissance()); 
                }
     
            }
        }
     
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        private void btnconsultActionPerformed(java.awt.event.ActionEvent evt) {                                           
     
                         model.addRow(new Object [] {
                 // je ne sais comment récupérer de ma liste 
                        }); 
        }
    MERCII

  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
    Salut,

    Vu que la liste est une variable static public^^, tu peux toujours la récupérer par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(classe_personne personne : Stockage.lp) {
     
         // Ensuite, il faut que tu construises le tableau pour chaque ligne
     
    }
    Tu pourrais, au lieu de faire ça, faire un modèle spécifique : c'est plus compliqué à faire quand on est débutant, mais c'est plus pratique à utiliser ensuite (pas besoin de boucle ou de convertir en tableau).

    Par ailleurs, je vais passer sur la liste static (parce que je ne sais pas dans quel cadre tu fais ton programme), mais pourquoi appeler une classe classe_personne ? Personne, c'est n'est plus simple et clair (en plus de respecter les conventions) ?
    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
    Membre éclairé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Par défaut
    je ne peux pas les appeler en dehors de ma boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     for(class_personne pers : Stockage.lp) {
    
               String n=  pers.getNom(); 
               String p=  pers.getPrenom();
               String ad=  pers.getAdresse();
               Date  dn=  pers.getDateNaissance();  
               
            } 
            model.addRow(new Object [] { 
                //error
               n, p , ad , dn
               });

  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
    Bah, oui, les 4 variables étant locales à la boucle, c'est normal. Il suffit de mettre la ligne avec le addRow dans la boucle, en toute logique, le but étant d'ajouter chaque personne de la liste. Sinon pourquoi faire une boucle ?
    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.

  5. #5
    Membre éclairé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Par défaut
    logique oui , mais ce n'est pas possible de mettre le addRow dans la boucle car à chaque fois que je vais cliquer sir le bouton la table se remplie et les champs se rajoutent après chaque clique ..

  6. #6
    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
    Mais il sert à quoi ce bouton ? Il fait quoi au juste ? Je pensais que ça ouvrait une fenêtre avec une JTable affichant les personnes dans la liste. On pourrait tout à fait avoir une boucle qui remplit la table sur action sur bouton (un bouton "Rafraîchir" par exemple) : il suffit de vider son contenu avant à chaque fois.
    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.

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

Discussions similaires

  1. Probleme affichage arraylist dans jtable
    Par brew94 dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 19/12/2008, 13h31
  2. ArrayList et JTable
    Par AnubisCorp dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 06/02/2008, 11h10
  3. Mettre des données d'une bdd vers JTable (via hibernate)
    Par tinwul dans le forum Composants
    Réponses: 6
    Dernier message: 03/01/2008, 23h16
  4. Arrayliste vers tableau
    Par ricault dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 04/06/2007, 11h51
  5. [SWING] Jtable vers JTable???
    Par rprom1 dans le forum Composants
    Réponses: 13
    Dernier message: 30/03/2006, 13h59

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