Hi, ich möchte mit Java ein Geburtstagserinnerungsprogramm programmieren. Dazu muß ich die Daten der Personen an deren Geburtstag ich mich erinnern lassen möchte in eine JTable eintragen. (z.B. Name, Geburtstag usw.) Natürlich möchte ich das die Daten auch beim nächsten Start des Programms da sind, darum muß ich sie in eine Datei rausschreiben. So, nun meine Frage! Wie mache ich das am besten. Ich habe mir gedacht das ich die gleich die ganze Tabelle immer in eine Datei schreibe. Das müsste ja gehen, da JTable das Interface Serializable implementiert und ich so die ganze Tabelle als Objekt rausschreiben kann, oder? Wenn ich nun in der Tabelle etwas editiere drücke ich dann wieder auf "speichern" und schreibe die korrigierte Tabelle raus. Wäre diese Implementation sinnvoll oder macht man so etwas anders? Oder sollte ich vielleicht zuerst die eingegebenen Daten der Personen in einer Liste speichern und gleichzeitig trägt mir ein Listener die Daten der Liste in die JTable ein. Wenn ich dann etwas editiere, würde ich die Daten in der angelegten Liste ändern und nicht direkt im JTable. Vielleicht kann mir einer einen sinnvollen Lösungsvorschlag schicken oder Verbesserungen. Wäre sehr dankbar, da ich noch keine sehr große Erfahrung habe. Vielen Dank!
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
Schau mal unter
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#data
und
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#eg
rein, da steht alles beschrieben.
Am Besten nutzt Du das MVC (Modell, View, Controller) Konzept
und verwendest JTable nur für die Darstellung und nimmst
ein TableModell für die Daten.
Das Ganze sieht zu Anfang etwas kompliziert aus,
Es bringt aber viele Vorteile, die Daten von der Darstellung
zu trennen.
So kannst Du z. B. nur die reinen Nutzdaten speichern.
(Bei einem serializable JTable würdest Du das ganze GUI Objekt
mit speichern, eine heftige Platz- und Performanceverschwendung).
Zum Lesen und Schreiben der Daten kannst Du Dich dann
im Streams Zoo bedienen oder auch Properties nehmen.
Gruss, vergisses