Also üblicherweise funktioniert der Spaß ungefähr so:
Du klickst auf eine Tabelle. Die Tabelle fragt ihr Model
isCellEditable(row, column). Das ist Deine Methode.
Sagt das Model
true wird der
CellEditor ermittelt und gefragt, ob er die Zelle mit dem entsprechenden Event editieren will (so wird zum Beispiel bei manchen Editoren erst auf den Doppelklick editiert).
Will der
CellEditor editieren, so wird seine Komponente in der Tabelle dargestellt. Dann kann man editieren.
Klickst Du jetzt neben die Zelle wird
stopCellEditing() im
CellEditor aufgerufen. Dann feuert der Editor ein Event und die Tabelle regiert darauf indem sie den geänderten Wert vom
CellEditor holt und die Methode
setValueAt(value, row, column) im
TableModel aufruft, die dann den Wert setzt und einen Event feuert, worauf die Tabelle die Zelle neu zeichnet.
Dass Deine Tabelle die geänderten Werte nicht darstellt kann daher an folgenden Dingen liegen:
1) Dein
TableModel speichert die Werte nicht,
2) Dein
TableModel speichert die Werte aber feuert keinen Event (oder den falschen),
3) Der
CellEditor feuert keinen Event bei
stopCellEditing(),
4) Der
CellEditor feuert zwar den Event, gibt aber nicht den geänderten Wert zurück und
5) Du klickst nicht neben die Zelle sondern die Tabelle. Dann wird üblicherweise
cancelCellEditing() aufgerufen und der Original-Wert belassen. Das Verhalten lässt sich ändern...
Falls das nicht hilft, poste nochmal (vielleicht auch ein bisschen Code,
nur das wichtigste).
Dein Problem ist lösbar
Es grüßt Ebenius