Verhalten von statischen Variablen in Applets

lazydog

Mitglied
Hallo,

verwende ich in einem Applet statische Variablen bleibt deren Inhalt erhalten, wenn man die Webseite verlässt und wieder zurückkehrt (verwendeter Browser ist i.d.F Firefox).

Teil 1 meiner Frage ist: kann man sich darauf verlassen, immerhin wird ja das Applet eigentlich erneut initialisiert?

Teil 2 wäre dann: benutze ich - da mir der Effekt eigentlich gut zu Pass kommt - eine statische Variable z.B. als Zwischenspeicher für eine Textkomponente (JTextField od. JTextPane), wird diese zwar wieder inkl. Inhalt korrekt angezeigt (auch die Einfügemarke od. Selektion innerhalb des Textes) . Allerdings lässt sich kein Text mehr eingeben, da die Komponente offensichtlich keine Keyevents mehr empfängt. Gibt es hierzu einen Tip oder sollte man von der Fährte - statische Variablen in Applets - lieber ganz die Finger lassen?

besten Dank für hilfreiche Anmerkungen

lazydog
 
statische Variablen zum speichern des Appletstatus sind keine gute Idee. Das geht bestens mit der Persistence API:
Code:
import java.applet.*;
import java.io.*;

public class PersistantApplet extends Applet
{
    public void init()
    {
        int count = 0;

        try
        {
            InputStream in = getAppletContext().getStream("key 1");
            if (in != null)
                count = new ObjectInputStream(in).readInt();
        }
        catch (Throwable th)
        {
            th.printStackTrace();
        }

        System.out.println("Counter:" + count);

        try
        {
        	
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            ObjectOutputStream oos = new ObjectOutputStream(baos);
            oos.writeInt(count + 1);
            oos.close();

            byte[] buf = baos.toByteArray();
            getAppletContext().setStream("key 1", new ByteArrayInputStream(buf));
            
        }
        catch (Throwable th)
        {
            th.printStackTrace();
        }
    }
}
 
Zurück