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 :

JTable et ArrayList comme données


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 107
    Par défaut JTable et ArrayList comme données
    Bonjour, je voulais savoir comment faire pour mettre dans un tableau les données d'un arrayList.

    mon arrayList contient des 'Employee' .

    un employer = prénom, nom, poste, salaire et d'autre données mais que l'on affiche pas.

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Et bien tu crées ton propre model pour ta table en héritant d'AbstractTableModel
    cf les tutos de Sun as always:
    http://java.sun.com/docs/books/tutor...able.html#data

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 107
    Par défaut
    oui mais la ou je bloque c pour faire le model.

    Pour le nombre de collone et leur nom,
    j'ai créer un
    String[] columnsName = {"nom","prénom","poste","salaire"};

    mais après comment je fait avec mon Array dans le model ?

  4. #4
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Par défaut
    vous pouvez pas employer directement ton arraylist.
    vous devez parcourir ton arraylist ( avec un objet de type iterator) et mettre le resultat dans un vecteur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Vector columnsName = // vecteur contenant les noms des colonnes
    Vector columnsData = // vecteur contenant les données recuperées depuis l'arraylist

  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Pour faire simple:

    Tu as donc créé un model contenant des headers et ton ArrayList

    Il faut que tu redéfinisse les méthodes setValueAt et getValueAt au minimum
    Tu définis comme nom étant le première colonne et ainsi de suite de la façon suivante

    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
     
    public class MyModel extends AbstractTableModel {
     
      public static int NOM=0;
      public static int PRENOM=1;
      public static int POSTE=2;
      public static int SALAIRE=3;
     
      private Object[] headers;
      private ArayList<Employe> data;
     
      public MyModel(Object[] headers, ArayList<Employe> data) {
          this.headers = headers;
          this.data = data;
      }
     
      public void setValueAt(Object o,int x, int y) {
          if(x<data.size() && y < 4) {
              if( y == NOM) {
                  //je supppose que ton objet employe a un accesseur s'appelant setNom portant sur l'attribut bien sûr privé nom
                  data.get(x).setNom(o);
              } else if(....) {
                  et ainsi de suite pour chaque attribut de la classe étudiant
              }
           fireTableCellUpdated(x,y);
          }
      }
     
    ...
    }
    Bon pour le getValueAt ce sera pareil que le setValue at, je vais pas non plus te macher le travail

    Bon sinon tu fais la faignasse et tu balances le champs de tes pbjets dans un tableau comme dit dans le poste ci dessus...

    Penses également à getColumnCount (qui dans ton cas doit toujours renvoyer 4)

    Penses également à setColumnCount

    Et puis éventuelement un getColumnClass pourrait être de bon aloi

  6. #6
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Par défaut
    faut recuperer tes donnees depuis le arraylist et les mettre soit dans un tableau a 2 dimension soit dans un vecteur de vecteurs

    le contsructeur JTable(vecteur1,vecteur2) avec
    vecteur1=vecteur de vecteurs contenant les donnees des employes
    vecteur2=vecteur contenant les nom des colonnes (prenom,nom,poste,...)

Discussions similaires

  1. [JTable] mise à jour des données
    Par tripop dans le forum Composants
    Réponses: 3
    Dernier message: 04/02/2009, 18h52
  2. JTable avec ArrayList
    Par stounouslous dans le forum Composants
    Réponses: 3
    Dernier message: 02/02/2007, 15h11
  3. jtable et base de donnée acess
    Par lilmo dans le forum Composants
    Réponses: 8
    Dernier message: 23/12/2006, 00h15
  4. [JTable] Accéder à une colonne donnée
    Par b_52globemaster dans le forum Composants
    Réponses: 2
    Dernier message: 16/08/2005, 18h38
  5. [JTable] Comment récuperer les données d'un fichier texte ?
    Par Makunouchi dans le forum Composants
    Réponses: 2
    Dernier message: 03/05/2005, 16h37

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