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.
Version imprimable
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.
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
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,...)
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 ?
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:
1
2
3 Vector columnsName = // vecteur contenant les noms des colonnes Vector columnsData = // vecteur contenant les données recuperées depuis l'arraylist
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
Bon pour le getValueAt ce sera pareil que le setValue at, je vais pas non plus te macher le travailCode:
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 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