Long story short: the listener implementation that Swing uses is a transient array - in other words the registered listeners for swing components are not serialized. You could try and use a variety of methods to restore these listeners upon reading the object. My .02, but you might want to consider a different method to save things (I would typically discourage one from saving data in this manner - depending upon what you are doing - as other formats are more flexible to changes to the client/GUI without things breaking)