Bonjour à tous,
Je créé acuellement une interface qui contient une JTable avec une colonne contenant des Strings (non éditable) et une colonne contenant des double éditable. Jusque-là tout va bien, seulement lorsque j'édite ma case (car au début il n'y à qu'une ligne) la modification n'est jamais reportée dans les données de la JTable. D'ailleurs même si j'appuie sur entrée, la case semble rester en édition...
Voici mon model :
Création de la table (à laquelle j'ajoute une ligne par la suite) :
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 class TableModel2Col extends AbstractTableModel { private ArrayList<String> col0 = new ArrayList<String>(); private ArrayList<Double> col1 = new ArrayList<Double>(); //private ArrayList [] data; //Les données public TableModel2Col () { } //Fonctions qu'il est nécéssaire de surcharger public int getRowCount () {return col0.size();} public int getColumnCount () {return 2;} public boolean isCellEditable (int row, int col) {return col==1; } public Object getValueAt (int row, int col) { if(col==0) return col0.get(row); else return col1.get(row); } //On ajoute , on remplace ou on supprimer suivant les valeurs entrées... public void setValueAt(Object value, int row, int col) { if (value != null) { if(col==0) { if (row >= col0.size()) col0.add(row,(String) value); else col0.set(row,(String) value); }else { if (row >= col1.size()) col1.add(row,(Double) value); else col1.set(row,(Double) value); } } else { col0.clear(); col1.clear(); } fireTableDataChanged(); } //Permet de tout éffacer public void clear () { col0.clear(); col1.clear(); fireTableDataChanged(); } }
Si quelq'un peut m'aider, merci d'avance...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 // Création de la table tableDim = new JTable(tabModel); tableDim.setTableHeader(null); tableDim.setRowHeight(30); avecAsc = new JScrollPane(tableDim);
[Nean]







Répondre avec citation
, il suffisait en fait redéfinir la méthode :

Partager