I am trying to learn more about java. This program is an attempt to understand events as well as serialization. What i am attempting to do is flatten an object when the user closes the JFrame and re-inflate it when the program is started. I know i can create the serialized file but having it take effect again isn't working. Any help in the right direction would be wonderful. Thank you in advance.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.Timer;
import java.io.*;
import java.io.Serializable;
import java.io.ObjectOutputStream;
import java.io.ObjectInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class tempusFugit extends JFrame implements ActionListener, Serializable, WindowListener
{
String fileN = "tf.txt"; 
public int ToL = 0;
String outT = Integer.toString(ToL);
    JLabel jl = new JLabel(outT);
FileOutputStream fos = null;
ObjectOutputStream out = null;
public tempusFugit()
{
    Timer timer = new Timer(1000, this);
    setBounds(250, 250, 250, 190);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLayout(new FlowLayout(FlowLayout.LEFT) );
    setVisible(true);
    add(jl);
    timer.start();
}
public void actionPerformed(ActionEvent e)
{
    ++ToL;
    outT = Integer.toString(ToL);
    jl.setText(outT);
    validate();
    repaint();
}
public static void main(String[] args)
{
    tempusFugit tf = new tempusFugit();
    tf.addWindowListener( tf );
}
public void windowDeactivated(WindowEvent e)
{
}
public void windowActivated(WindowEvent e)
{   
}
public void windowDeiconified(WindowEvent e)
{
}
public void windowIconified(WindowEvent e)
{
}
public void windowClosed(WindowEvent e)
{
}
public void windowClosing(WindowEvent e)
{
    try
    {
        fos = new FileOutputStream(fileN);
        out = new ObjectOutputStream(fos);
        out.writeObject(this);
        out.close();
    }
    catch(IOException ex)
    {
}
}
public void windowOpened(WindowEvent e)
{
try
    {
        tempusFugit tf = new tempusFugit();
        FileInputStream fis = new FileInputStream(fileN);
        ObjectInputStream in = new ObjectInputStream(fis);
        tf = (tempusFugit)in.readObject();
        this.ToL = tf.ToL;
    }
    catch(IOException ex)
    {
    }
    catch(ClassNotFoundException ce)
    {
    }
}
}
I assume i'm trying to recreate the object at the wrong time. Even though the object is serialized correctly i can not access it again with the windowOpened function. Do i need to try to use
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException;
somehow?
What i end up with is an error saying i am trying to access a Final object (i assume my this). I find that very odd that i cant repopulate my current 'this' with another similar object.
Am i way off base?
Again thank you for your time.