Voici ce que je possède pour le moment, j'ai bien ce que je voulais :
Dans ma partie model j'ai une class Environment que j'ai créé. Celle ci possède des propriétés dont les deux que l'on voit dans ma jTable (user et host).
Pour créer ma jTable j'utilise une class qui extends AbstractTableModel. Celle ci récupère une ArrayList<Environment>.
Le add me sert uniquement pour l'interfaçage, il ne s'agit pas d'une propriété Environment. Sa valeur m'intéresse pour savoir sur quelles instances d'Environment je dois travailler.
Problème : Bizarrement quand je clic sur un checkbox il y a des soucis d'initialisation, le comportement du clic est étrange, des fois il ne prend pas, parfois il change lorsque je clic sur un autre checkbox. Pas étonnant, en même temps quand on voit comme je gère le boolean.
Des idées pour améliorer ça?
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
72
73 public class EnvironmentsIntoJTable extends AbstractTableModel { private final ArrayList<Environment> environments = new ArrayList<Environment>(); private final String[] header= {"User", "Host", "Add"}; private boolean colClass = false; public EnvironmentsIntoJTable(ArrayList<Environment> anArrayList){ super(); for(Environment env : anArrayList){ this.environments.add(env); } } public ArrayList<Environment> getEnvironments() { return environments; } @Override public Object getValueAt(int rowIndex, int columnIndex){ switch(columnIndex){ case 0: return this.environments.get(rowIndex).getUser(); case 1: return this.environments.get(rowIndex).getHost(); case 2: return this.colClass; default: return null; } } @Override public void setValueAt(Object val, int row, int col) { if(col==2){ this.colClass=(boolean)val; } } @Override public boolean isCellEditable(int arg0, int arg1) { boolean rep=false; if (arg1==2){ rep=true; } return rep; } @Override public Class getColumnClass(int arg0) { Class rep = String.class; if (arg0 == 2){ rep = Boolean.class; } return rep; } @Override public int getColumnCount() { return header.length; } @Override public int getRowCount() { return environments.size(); } @Override public String getColumnName(int column) { return header[column]; } }
Partager