Objekte aus einer Datei in eine JTable schreiben

MCXVEG

Grünschnabel
Hallo, ich habe folgendes Problem.
Ich speichere Objekte aus einer JTable in einer Datei, das funktioniert auch.
Nun möchte ich die Objekte aus der Datei wieder in die JTable schreiben.
Ich habe keinen blassen Schimmer wie das funktionieren soll.
Bitte helft mir!

damit speichere ich:
Code:
    ObjectOutputStream oos = null;

                	    try {
                		oos = new ObjectOutputStream(new BufferedOutputStream(
                                new FileOutputStream(file)));
                	    
                                oos = new ObjectOutputStream(new BufferedOutputStream(
                                        new FileOutputStream(file)));
                                for ( int i = 0; i < colm; i++){
                            	for (int k = 0; k < rowm; k++){
                            	// System.out.println(mscTab.getValueAt(i,k));
                            	   oos.writeObject(mscTab.getValueAt(i,k));
                            	   oos.flush();
                            	}
                                }
                                
                            } catch (IOException ex) {
                                System.out.println(ex);
                            } finally {
                                try {
                                    oos.close();
                                } catch (IOException iex) {
                                }
                            }

und damit möchte ich auslesen, in der try Anweisung liegt das Problem.

Code:
int colm = mscTab.getColumnCount();
                        int rowm = mscTab.getRowCount();
                        
                        ObjectInputStream ois = null;
                        try {
                            ois = new ObjectInputStream(new BufferedInputStream(
                                    new FileInputStream(file)));
                            for ( int i = 0; i < colm; i++){
                            	for (int k = 0; k < rowm; k++){
                            	tdat = mscTab.getValueAt(i,k);
                            tdat = ois.readObject();
                            	}}
                        } catch (Exception ie) {
                            System.out.println(ie.getMessage());
                        } finally {
                            try {
                                ois.close();
                            } catch (Exception ex) {
                            }
                        }
 
Hallo,

wenn du es ohne Model machst, solltest du die Methode table.setValueAt() benutzen.

Code:
int colm = mscTab.getColumnCount();
                        int rowm = mscTab.getRowCount();
                        
                        ObjectInputStream ois = null;
                        try {
                            ois = new ObjectInputStream(new BufferedInputStream(
                                    new FileInputStream(file)));
                            for ( int i = 0; i < colm; i++){
                            	for (int k = 0; k < rowm; k++){
                            	
                            tdat = ois.readObject();
                            mscTab.setValueAt(tdat,i,k);
                            	}}
                        } catch (Exception ie) {
                            System.out.println(ie.getMessage());
                        } finally {
                            try {
                                ois.close();
                            } catch (Exception ex) {
                            }
                        }

So müsste es eigentlich funktionieren. Hab es jetzt nicht getestet. :-)

MFG

zEriX
 
Hi, sorry das ich erst heute antworte, war im Urlaub.
Ich habe deinen Quellcode gerade getestet und bekomme bei tdat "cannot be resolved".

MfG
 
Blödheit sollte bestraft werden. Hab grad gemerkt was ich da geschrieben habe mit dem "cannot be resolved". Naja ;)
 
Moin!
Na du bist lustig.. tdat hast du doch selbst in deinem Quellcode benutzt! Hast wohl vergessen es zu initialiseren? tdat ist jedenfalls vom Typ Object..

*grüssle*
MeinerEiner

PS: Na wie ich sehe, hast du es gerade auch selbst bemerkt
 
Ja hatte das total vergessen.
Hab gerade das Problem wie ich die Daten aus dem Object wieder in die Tabelle bekomme.
Mal sehen was rauskommt.
 
Datei->Objekt->Tabelle

Einfach die Daten einlesen und in ein Objekt schreiben, dann ein JTableModel schreiben wo die methode setValueAt() so modifiziert ist, dass sie dein Objekt in die Tabelle abbildet.
eigentlich ganz einfach.

In diesem Sinne viel Vergnügen.

gora
 
Hey, vielen Dank für den Tipp. Ich bin gerade dabei das in die Tat umzusetzen, komm aber nicht so richtig voran da ich keine richtigen ideen habe.

cheerz
 
Wenn du nicht weiterkommst, dann poste halt mal, was du bist jetzt hast, dann kann man dir auch sicher weiterhelfen..
Ich persönlich verstehe aber nicht ganz wo das Problem liegt.. Schliesslich hattest du die Daten doch schonmal in der Tabelle drin?! Der Weg, wie du sie nach dem Laden hineinbekommst, sollte doch der Gleiche sein?!

*grüssle*
MeinerEiner
 
Das ist auch nicht so ein großes Problem, hab nur gerade ne leichte Denkblockade.
Aber es geht voran, wenn auch nur langsam.
 
Zurück