JTable Datenänderung

xeal

Mitglied
Hallo,

hab schon wieder ein Problem mit der JTable. Ich möchte Daten die in der Tabelle geändert werden in eine Datenbank schreiben lassen. Mein Problem liegt jetzt darin festzustellen ob sich die Daten in dem Feld x,y geändert haben.
Habe jetzt den TableModelListener gefunden, jedoch weiß ich nicht wie ich diesen der Tabelle zuweise.

Könnte mir einen Tipp geben?

Gruß Xeal
 
Habe eine Möglichkeit gefunden über das TableModel :)

Ciao

edit

Also so richtig war es das doch nicht was ich suche. Bislang ich es so gemacht

Code:
model.addTableModelListener(tableListener);

public void tableChanged(TableModelEvent e) {
// mach was
}

dabei wird auf jede Veränderung reagiert, was auch der Fall ist wenn die Tabelle gefüllt wird. Welchen Event kann ich den auslösen wenn ich nur die Änderung haben möchte nach dem die Tabelle gefüllt worden ist?

Vielen Dank für eure Hilfe
 
Zuletzt bearbeitet:
Moin,
ich bin nicht ganz sicher, wann Du reagieren möchtest, aber prinzipiell wird ja ein setValueAt(...) aufgerufen, wenn in einer Zelle fertig editiert wurde. Vielleicht kannst Du damit etwas anfangen?
 
hey,

setValueAt wird ja noch aufgerufen wenn die Tabelle gefüllt wird. Möchte aber nach dem die Tabelle komplett gefüllt wurde reagieren bzw den Datensatz in die Datenbank schreiben wenn er geändert wurde.

Hoffe jetzt is klar was ich meine
 
Vielleicht stelle ich mir das wieder zu einfach vor, aber was ist mit einem Flag isTableFilled, welches zunächst auf false bleibt, bis die Tabelle mit Werten komplett gefüllt wurde. Danach wird es auf true gesetzt, und im setValueAt(...) wird dann ein fürs Speichern relevantes weiteres Flag isTableEdited von false auf true gesetzt, wenn auch isTableFilled auf true ist. Du speicherst nur, wenn isTableFilled auf true steht, fertig. Du kannst natürlich im setValueAt(...) auch darauf achten, ob ein Wert wirklich geändert wurde und nur dann isTableFilled auf true setzen.
Damit sollte der Ablauf doch OK sein, oder?
 
Zurück