Here's something that might work...
You can save your settings into Streams using the AppletContext and in your init() method, you can see if these streams exist. If so, you can load the data based on the streams.
Example....
// save a variable
ByteArrayOutputStream baos = new ByteArrayOutputStream ();
ObjectOutputStream oos = new ObjectOutputStream (baos);
oos.writeObject (<object name>
;
oos.close ();
byte [] data = baos.toByteArray ();
is = new ByteArrayInputStream (data);
baos.close ();
getAppletContext ().setStream ("<object name>", is);
In your init() method, check if this stream is null. If not, load it.
InputStream is = getAppletContext ().getStream ("<object name>");
ObjectInputStream ois = null;
if (is != null) {
try {
ois = new ObjectInputStream (is);
<object name> = ((<cast to object type) ois.readObject());
ois.close();
is.close();
}
catch (Exception e) {
e2.printStackTrace(System.out);
}
}