Bonjour à tous,
Voila, je suis en train de chercher pour pouvoir ajouter des colonnes de façon dynamique dans une JTable. Le problème, c'est que les cellules ont des render différents suivant la cellule.
Je ne sais donc pas comment modifier la méthode getColumnClass (int colIndex); pour que quelle que soit le nombre de colonne que l'on ajoute, les renders s'appliquent toujours au bonne colonnes.
Voici le source du getColumnClass :
Si par exemple on ajoutait les colonnes en fin de tableau, ce serait assez simple il n'y aurait rien à modifier (puisque les renders des colonnes qu'on ajoute sont de type Object).
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 public Class getColumnClass (int columnIndex) { switch (columnIndex) { case 2: return Sexe.class; case 5: return Bourse.class; case 6: return Bac.class; case 7: return Semester.class; case 9: return Semester.class; case 11: return Semester.class; case 13: return Semester.class; case 15: return SemesterPostDut.class; case 17: return SemesterPostDut.class; case 19: return Dut.class; case 20: return PostDUT.class; case 21: return Studies.class; case 23: return Studies.class; case 25: return Studies.class; case 27: return Studies.class; case 29: return Studies.class; case 31: return Studies.class; case 33: return Studies.class; case 35: return Studies.class; case 37: return Studies.class; default: return Object.class; } // return getValueAt(0, columnIndex).getClass(); }
Mais à termes, mon application devra pouvoir ajouter une colonne à n'importe quel endroit de la JTable, d'où mon problème.
EDIT :
Sur le site de sun, il utilise ceci :
Malheureusement cela me sort un NullPointerException ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public Class getColumnClass(int c) { return getValueAt(0, c).getClass(); }
Si vous avez des idées, merci d'avance,
Elhina
Partager