建议你看看command模式,非常适合于做绘图一类程序。

解决方案 »

  1.   

    两种方法,一个是记下所有的绘制操作,读盘后重复一遍。
    另一种是将画好的图保存成图片GIF格式也可以。
      

  2.   

    肯定是进行文件操作了,用IO的OBJECTSTREAM可以进行序列化的流操作
      

  3.   

    给你一个例子,保存一组点到文件,再读出来,一般要序列化的对象需要实现serialize接口
    这里由于point 和list实现了这个接口,因此没有介绍如何实现序列化了,这方面可以参考
    effective java
    package Test;
    import java.awt.Point;
    import java.util.ArrayList;
    import java.util.Random;
    import java.io.*;
    class TestSerialize {
      final static Random r = new Random();
      static ArrayList createPointList()
      {
        ArrayList list = new ArrayList();
        for( int i = 0;  i < 10 ; i ++)
        {
          list.add(new Point( r.nextInt(),r.nextInt()));
        }
        return list;
      }   static ObjectOutputStream  out;
       static ObjectInputStream in;
      final static String filename = "c:/points.dat";  static void writeObject(Object obj)
      {
        try
        {
          if(out == null)
          {
            out = new ObjectOutputStream(new FileOutputStream(filename));
          }
          out.writeObject(obj);
        }
        catch(IOException ex)
        {
           ex.printStackTrace();
        }
      }  static Object readObject( )
      {
        Object ret = null;
        try
        {
          if(in == null)
          {
            in = new ObjectInputStream(new FileInputStream(filename));
          }
          ret = in.readObject();
        }
        catch(Exception ex)
        {
          ex.printStackTrace();
        }
        return ret;
      }
      public static void main(String[] args) {
        ArrayList list = createPointList();
        System.out.println("old list" + list);
        writeObject(list);
        ArrayList newList = (ArrayList)readObject();
        System.out.println("new list" + newList);
        System.out.println(" is two list equals:" + list.equals(newList));
      }
    }