# java.io.WriteAbortedException bei Serializierung



## VdA (9. Apr 2007)

Hab vor mein Komplettes JFrame zu serializieren doch leider kommt folgende fehlermeldung:
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: sun.awt.image.ToolkitImage
        at java.ibjectInputStream.readObject0(ObjectInputStream.java:1309)
	at java.ibjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
	at java.ibjectInputStream.readSerialData(ObjectInputStream.java:1832)
	at java.ibjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
	at java.ibjectInputStream.readObject0(ObjectInputStream.java:1305)
	at java.ibjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
	at java.ibjectInputStream.defaultReadObject(ObjectInputStream.java:479)
	at java.awt.Component.readObject(Component.java:7452)
	at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at java.ibjectStreamClass.invokeReadObject(ObjectStreamClass.java:946)
	at java.ibjectInputStream.readSerialData(ObjectInputStream.java:1809)
	at java.ibjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
	at java.ibjectInputStream.readObject0(ObjectInputStream.java:1305)
	at java.ibjectInputStream.readArray(ObjectInputStream.java:1634)
... usw


blöd nur dass er mir nicht sagr wo er das ToolkitImage gefunden hat.
hab mal gekuckt liegt es vllt daran das ein Image sich nicht serializieren lässt?
Wär doch schwachsinn ein Bild muss man doch speichern können!
nun tap ich im Dunkeln.


----------



## Wildcard (9. Apr 2007)

> java.io.NotSerializableException: sun.awt.image.ToolkitImage


Warum sollte man überhaupt einen ganzen JFrame serialisieren wollen?


----------



## VdA (9. Apr 2007)

Ich programmiere ein Malprogramm bei dem Mann verschiedene Schichten hat und somit verschiedene Bilder gleichzeitig öffnen kann. Und nun dachte ich das es praktisch wäre, dass wenn man das programm ausmacht und später wieder an das man dann genau da weiter machen kann wo man aufgehört hat.
Darum will ich das JFrame serializieren.


----------



## Wildcard (9. Apr 2007)

VdA hat gesagt.:
			
		

> Ich programmiere ein Malprogramm bei dem Mann verschiedene Schichten hat und somit verschiedene Bilder gleichzeitig öffnen kann.


Und Frau nicht?  :noe: 

Speicher den Zustand der Bilder, nicht das ganze Atelier


----------



## VdA (9. Apr 2007)

nun gut mach ich


----------



## VdA (9. Apr 2007)

Gut ich speicher Jetzt nur noch das JTabbedPane in dem die Bilder eingeordnet sind.
Aber Immer wenn ich ein bild geöffnet hab und das programm beende kommt die oben genannte Exception


----------



## Wildcard (9. Apr 2007)

Da steht doch alles drin:
 java.io.NotSerializableException: sun.awt.image.ToolkitImage 
Ein sun.awt.image.ToolkitImage ist nicht serialisierbar.


----------



## Roar (9. Apr 2007)

eine JTabbedPane zu serialisieren ist genauso horstig wie ein JFrame zu serialisieren.
du wirst doch irgendwo ein 'Image' model haben müssen zum speichern
=> http://n.ethz.ch/student/besigg/forum/tutorial/Tutorial.pdf


----------



## VdA (9. Apr 2007)

```
=> [url]http://n.ethz.ch/student/besigg/forum/tutorial/Tutorial.pdf[/url]
```
nette sache brauch ich aber nicht alles was da drin steht hab ich schon Programmiert ich will noch ein Bisschen weiter gehen. Ich poste das programm wenn ich fertig bin.

nun möchte ich mal wissen wo das sun.awt.image.ToolkitImage ist. ich hab vorher nämlich noch nie davon gehört.
Is das irgendwie bei einem java.awt.Image dabei?
Ich denke das es irgendwie sinnlos ist das ein Bild nicht serializierbar ist.

Warum ist es horstig ein JTabbed frame zu serializieren?
ich brauch es dann später nur deserializieren und auf mein fenster adden und fertig.


----------



## Wildcard (9. Apr 2007)

VdA hat gesagt.:
			
		

> Warum ist es horstig ein JTabbed frame zu serializieren?
> ich brauch es dann später nur deserializieren und auf mein fenster adden und fertig.


Serialisierung ist extrem unflexibel und absolut keine geeignete Daten-Persistierung, die Serialisierung von Swing Komponenten noch viel weniger.
Nicht umsonst steht in in der API-Doc jeder Swing Komponente folgende Warnung:


> *Warning:  Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing.* As of 1.4, support for long term storage of all JavaBeansTM  has been added to the java.beans package. Please see XMLEncoder.


----------



## VdA (9. Apr 2007)

nagut wenn du meinst... überleg ich mir was anderes.


----------

