G
Guest
Gast
Hallo zusammen,
bin gerade dabei ein Verwaltungsprogramm für Bücher zu programmieren. Das ganze soll ohne Datenbank laufen, mit Hilfe von Serialisierung.
Ich bekomme die Daten bereits eingetragen - aus einem Formular heraus erzeuge ich ein neues Buch-Objekt, das anschließend an einen Vector eingefügt und beim Speichern serialisiert wird. Klappt alles.
Nun möchte ich die Bücher natürlich auch grafisch anzeigen lassen und da bietet sich ja ein JTable an.
Zunächst erzeuge ich den Vector für die Colnames, was auch klappt (ohne Daten zeigt er mir die Überschriften an). Anschließend speichere ich in einem Datenvector den Vector, den ich durch das Deserialisieren bekomme. Das klappt auch (hab ich im Debugger überprüft). Ich habe nun also zwei Vectoren - der erste enthält die Buch-Objekte und der zweite die Tabellenüberschriften.
Die Fehlermeldung taucht dann im nächsten Schritt auf, wenn ich die Tabelle erstellen möchte, hier mal die Exceptions
Zeile 79 ist die Zeile, in der die Tabelle erzeugt wird (was ohne Daten ja auch funzt).
Sooo, ich hab natürlich schon ein wenig gesucht und denke, dass ich in dem Vector Buch-Objekte habe und der damit nicht klarkommt. Aber - was nun? Geht das nur mit dem TableModel oder kann ich da noch anders was *drehen*? Bin echt ratlos im Moment :-(
Also zusammenfassend - Buchobjekt vom Typ Buch wird in Vector gespeichert, der wird serialisirt - beim Frame zum Anschauen der Bücher wird der Vector wieder deserialisiert und in einem Vector gespeichert, der dann die Fehler verursacht.
Hänge jetzt seit Stunden dadran und hab langsam keine Lust mehr :-(
Danke
bin gerade dabei ein Verwaltungsprogramm für Bücher zu programmieren. Das ganze soll ohne Datenbank laufen, mit Hilfe von Serialisierung.
Ich bekomme die Daten bereits eingetragen - aus einem Formular heraus erzeuge ich ein neues Buch-Objekt, das anschließend an einen Vector eingefügt und beim Speichern serialisiert wird. Klappt alles.
Nun möchte ich die Bücher natürlich auch grafisch anzeigen lassen und da bietet sich ja ein JTable an.
Zunächst erzeuge ich den Vector für die Colnames, was auch klappt (ohne Daten zeigt er mir die Überschriften an). Anschließend speichere ich in einem Datenvector den Vector, den ich durch das Deserialisieren bekomme. Das klappt auch (hab ich im Debugger überprüft). Ich habe nun also zwei Vectoren - der erste enthält die Buch-Objekte und der zweite die Tabellenüberschriften.
Die Fehlermeldung taucht dann im nächsten Schritt auf, wenn ich die Tabelle erstellen möchte, hier mal die Exceptions
Code:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: Buch
at javax.swing.table.DefaultTableModel.justifyRows(Unknown Source)
at javax.swing.table.DefaultTableModel.setDataVector(Unknown Source)
at javax.swing.table.DefaultTableModel.<init>(Unknown Source)
at javax.swing.JTable.<init>(Unknown Source)
at BuecherAnzeigen.createPanel(BuecherAnzeigen.java:79)
at BuecherAnzeigen.<init>(BuecherAnzeigen.java:27)
at Hauptprogramm$AktionsAbhoerer.actionPerformed(Hauptprogramm.java:102)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Zeile 79 ist die Zeile, in der die Tabelle erzeugt wird (was ohne Daten ja auch funzt).
Sooo, ich hab natürlich schon ein wenig gesucht und denke, dass ich in dem Vector Buch-Objekte habe und der damit nicht klarkommt. Aber - was nun? Geht das nur mit dem TableModel oder kann ich da noch anders was *drehen*? Bin echt ratlos im Moment :-(
Also zusammenfassend - Buchobjekt vom Typ Buch wird in Vector gespeichert, der wird serialisirt - beim Frame zum Anschauen der Bücher wird der Vector wieder deserialisiert und in einem Vector gespeichert, der dann die Fehler verursacht.
Hänge jetzt seit Stunden dadran und hab langsam keine Lust mehr :-(
Danke