Bonjour a tous,
j'ai de nouveau un problème qui, je pense, est encore une erreur bête de ma part.
j'ai une JTable avec un certain nombre de donnée et j'aimerai que dans la dernière colonne apparaisse un CheckBox que l'utilisateur pourra modifier comme bon lui semble. seulement voila au lien d'une belle boite a cocher je me retrouve avec un pas beau FALSE a la place voila mon code:
le tableCellRenderer :
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 String[][] worklist= requeteWorklist(); int[][] count = requeteCount(worklist); Vector vMain = new Vector(); if(worklist.length!=count.length){ System.out.println("Erreur dans la requetes"); } else{ for (int i= 0; i<worklist.length; i++){ if(count[i][1]!=0){ Vector tmp = new Vector(); tmp.add(worklist[i][0]); tmp.add(worklist[i][1]); tmp.add(worklist[i][2]); tmp.add(count[i][0]*100/count[i][1]+"%"); tmp.add(new Boolean(false)); vMain.add(tmp); } } } Vector header = new Vector(); header.add("Identifiant"); header.add("Nom des listes de travail"); header.add("Operations"); header.add("%terminés"); header.add("Select?"); System.out.println(vMain.size()); System.out.println(header.size()); tableWorklists = new JTable(vMain,header); tableWorklists.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); tableWorklists.getColumnModel().getColumn(0).setPreferredWidth(100); tableWorklists.getColumnModel().getColumn(1).setPreferredWidth(300); tableWorklists.getColumnModel().getColumn(2).setPreferredWidth(300); tableWorklists.getColumnModel().getColumn(3).setPreferredWidth(100); tableWorklists.setRowHeight(30); tableWorklists.setDefaultRenderer(Boolean.class, new AfficheCoche()); JScrollPane js = new JScrollPane(tableWorklists); js.setPreferredSize(new Dimension(800, 800)); table.add(js);
merci d'avance pour vos réponse qui sont toujours d'une aide précieuse pour les humble petit développeur du dimanche tel que moi ^^
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 class AfficheCoche implements TableCellRenderer{ Checkbox coche = new Checkbox(); public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if((Boolean) value == true) coche.setState(true); else coche.setState(false); if(isSelected == true) coche.setState(true); else coche.setState(false); return coche; } }
Partager