MichaelOswald
Grünschnabel
Hallo, dies ist mein erster Post und ich hoffe es passt so 
Ich möchte in einer JTable zur Laufzeit in einer Spalte bei einer Änderung das Änderungsdatum neu setzen.
Ich habe eine einfach Klasse erstellt (ToDoTableModel):
public class ToDoTableModel extends DefaultTableModel {
Dort wird einfach nur "isCellEditable" geändert um die Bearbeitung auf ein paar spezielle Spalten einzugrenzen.
Ich habe meine Testanwendung (ToDoURL) auf ein Miminum heruntergebrochen.
Ich erzeuge die JTable:
Per Button wird jetzt in Spalte 5 in der gewählten Zeile das Datum gesetzt. Soweit funktioniert noch alles. Ich brauche die Funktion aber im "tableChanged" Event:
Wenn ich den Code dort nutze kommt ein
"Exception occurred during event dispatching:
java.lang.StackOverflowError"...
Es muss doch eine einfach Option geben die Daten jetzt "on the fly" zu ändern.
Für eine Lösung bin ich dankbar.
Gruß Michael (Java Neuling...)

Ich möchte in einer JTable zur Laufzeit in einer Spalte bei einer Änderung das Änderungsdatum neu setzen.
Ich habe eine einfach Klasse erstellt (ToDoTableModel):
public class ToDoTableModel extends DefaultTableModel {
Dort wird einfach nur "isCellEditable" geändert um die Bearbeitung auf ein paar spezielle Spalten einzugrenzen.
Ich habe meine Testanwendung (ToDoURL) auf ein Miminum heruntergebrochen.
Ich erzeuge die JTable:
Java:
myTableModel = new ToDoTableModel(new Object[0][0], COLHEADS);
urlTable = new JTable(myTableModel);
Es gibt in der Applikation einen Testbutton mit folgendem Source:
public void actionPerformed(ActionEvent ae) {
Object eventTarget = ae.getSource();
if (eventTarget==jbtest) {
int selectedRow = urlTable.getSelectedRow();
urlTable.setRowSelectionInterval(selectedRow,selectedRow);
urlTable.setColumnSelectionInterval(5,5);
urlTable.setValueAt("xx.xx.2009 xx:xx:xx", selectedRow, 5);
} else if (eventTarget==jbnewentry) {
newURL();
}
}
Java:
myTableModel.addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent tme) {
switch (tme.getType()) {
case TableModelEvent.UPDATE:
System.out.println("UPDATE");
int selectedRow = urlTable.getSelectedRow();
urlTable.setRowSelectionInterval(selectedRow,selectedRow);
urlTable.setColumnSelectionInterval(5,5);
urlTable.setValueAt("xx.xx.2009 xx:xx:xx", selectedRow, 5);
break;
"Exception occurred during event dispatching:
java.lang.StackOverflowError"...
Es muss doch eine einfach Option geben die Daten jetzt "on the fly" zu ändern.
Für eine Lösung bin ich dankbar.
Gruß Michael (Java Neuling...)
Anhänge
Zuletzt bearbeitet: