Moin zusammen,
ich bastel gerade an einer kleinen Gui, die Tabellen enthält. Und mit JTable stehe ich irgendwie immer auf Kriegsfuß😒
Ach so, ich nutze dafür gerade Kotlin aber im Grunde ist es ja eine Java-Frage und es geht mir hier um die grundsätzliche Vorgehensweise.
Die jeweiligen Tabellen haben im Grunde alle dieselbe Aufgabe, beziehen aber unterschiedliche Daten. Ich habe mir ein Model auf Basis des AbstractTableModel erstellt. Das soll auch für alle Tabellen das gleiche Model (also als jeweilige Instanz für jede einzelne Tabelle) sein.
Ich habe funktionierende Methoden für das Hinzufügen und Löschen von Rows erstellt.
Dieses funktionieren so, dass über einen Controller
1) in der Datenquelle (ArrayList von Objekten) ein Objekt hinzugefügt / gelöscht wird und dann
2) fireTableDataChanged aufgerufen wird sodass sich die View nach 1) aktualisiert.
Da die Tabellen eine sehr überschaubare Größe haben, nutze ich stets fireTableDataChanged.
Mein Problem ist nun, dass ich die einzelnen Zellen auch editieren möchte. Alles auf editierbar setzen usw klappt.
Aber über welchen Weg realisiere ich die Übernahme der Änderung einzelner Zellen?
Bisher habe ich den TableModelListener versucht. Aber der reagiert ausgerechnet (nur?) auf das Hinzufügen und Löschen von Zeilen. Und genau das habe ich ja längst gelöst.
Ist der TableModelListener doch der richtige Weg oder muss ich einen Editor erstellen, oder ein Weg auf den ich gerade gar nicht komme?
Ich brauche also einen Listener, der Änderungen an den bestehenden Zellen meldet und dann eine entsprechende Methode aufruft. Wenn nur die Row ausgegeben wird, die geändert wurde wäre das auch schon genug.
Die Werte in den Datenquelle zu ändern ist dann wieder nicht mein Problem.
Vielen Dank schonmal
Paddycaster
ich bastel gerade an einer kleinen Gui, die Tabellen enthält. Und mit JTable stehe ich irgendwie immer auf Kriegsfuß😒
Ach so, ich nutze dafür gerade Kotlin aber im Grunde ist es ja eine Java-Frage und es geht mir hier um die grundsätzliche Vorgehensweise.
Die jeweiligen Tabellen haben im Grunde alle dieselbe Aufgabe, beziehen aber unterschiedliche Daten. Ich habe mir ein Model auf Basis des AbstractTableModel erstellt. Das soll auch für alle Tabellen das gleiche Model (also als jeweilige Instanz für jede einzelne Tabelle) sein.
Ich habe funktionierende Methoden für das Hinzufügen und Löschen von Rows erstellt.
Dieses funktionieren so, dass über einen Controller
1) in der Datenquelle (ArrayList von Objekten) ein Objekt hinzugefügt / gelöscht wird und dann
2) fireTableDataChanged aufgerufen wird sodass sich die View nach 1) aktualisiert.
Da die Tabellen eine sehr überschaubare Größe haben, nutze ich stets fireTableDataChanged.
Mein Problem ist nun, dass ich die einzelnen Zellen auch editieren möchte. Alles auf editierbar setzen usw klappt.
Aber über welchen Weg realisiere ich die Übernahme der Änderung einzelner Zellen?
Bisher habe ich den TableModelListener versucht. Aber der reagiert ausgerechnet (nur?) auf das Hinzufügen und Löschen von Zeilen. Und genau das habe ich ja längst gelöst.
Ist der TableModelListener doch der richtige Weg oder muss ich einen Editor erstellen, oder ein Weg auf den ich gerade gar nicht komme?
Ich brauche also einen Listener, der Änderungen an den bestehenden Zellen meldet und dann eine entsprechende Methode aufruft. Wenn nur die Row ausgegeben wird, die geändert wurde wäre das auch schon genug.
Die Werte in den Datenquelle zu ändern ist dann wieder nicht mein Problem.
Vielen Dank schonmal
Paddycaster