# Applet Frage



## cz3kit (13. Nov 2009)

Hallo,

ich soll am Montag einen Vortrag über Applets halten und ich hab noch eine kleine Frage. Ich habe ein Code der den Lebenszyklus eines Applets darstellen soll, aber es hängt noch an einer Sache. Folgender Code:

```
import java.awt.*;
import java.applet.*;

public class MyLife extends Applet {
    private TextArea text;
    
    public void init(){
        this.setSize(300, 300);
        text = new TextArea("Mein Leben als Applet:\n", 10, 40);
        this.add(text);
        
        text.append("... Ich werde initialisiert! ...}\n");
        
    }
    
    public void start(){
    	text.append("... Ich starte gerade ...\n");
    	
    }
    
    public void stop(){
    	text.append("... Ich werde beendet ...\n");
    }
    
    public void destroy(){
    	text.append("... Ich werde zerstört ...\n");
    }
}
```

Ich hab schon in mehreren Artikeln gelesen, dass man die start und stop Methode mehr als einmal aufrufen kann. Meine Frage ist jetzt wie? Weil wenn ich diesen Code einbinde und ausführe, gibt er mir nur den Text aus der init und der start. Wenn ich es in Eclipse teste, dann muss ich beim Appletviewer das Applet neu starten, wobei auch gleich destroy aufgerufen wird. Ich hoffe ihr versteht was ich meine. In den Artikeln stand, wenn eine neue Seite geladen wird, dann wird die stop Methode aufgerufen, ist aber damit gemeint, dass eine neue Seite in dem Tab geöffnet werden soll, oder wie ist das gemeint? Würde mich über Antworten freuen.

MfG cz3kit


----------



## L-ectron-X (13. Nov 2009)

Der *Browser* ruft sämtliche Methoden aus dem Lebenszyklus auf. Wobei es da auch Unterschiede zwischen den Browsern gibt.
init() - wird aufgerufen, wenn das Applet vom Browser geladen wurde.
start() - wird aufgerufen, wenn die init()-Methode verarbeitet wurde oder man von einer anderen Webseite zu der Webseite, in dem das Applet sitzt, zurückkehrt. Außerdem, wenn es wieder in den Anzeigebereich gescrollt wird.
stop() - wird aufgerufen, wenn man zu einer anderen Webseite wechselt, der Browser also noch ausgeführt wird. Außerdem, wenn das Applet aus dem Anzeigebereich gescrollt wird.
destroy() wird aufgerufen, wenn der Browser geschlossen wird. Zuvor wird noch die stop()-Methode ausgeführt.


----------



## cz3kit (13. Nov 2009)

Das heißt, ich müsste die HTML Seite so machen, das ich es rausscrollen kann, dann müsste er auch die stop Methode aufrufen. Vielen Dank für deine Antwort ich werde es sofort ausprobieren.

Ich habe es jetzt ausprobiert, die Seite so zu erstellen, dass das Applet rausgescrollt wird, leider wird der Text, der in dieser Methode ist, nicht ausgegeben. Wüsste jemand eine Idee wie man das Darstellen könnte?


----------



## L-ectron-X (13. Nov 2009)

Probiere auch mal einen anderen Browser. So weit ich weiß, arbeiten da nicht alle Browser gleich.


----------



## cz3kit (13. Nov 2009)

Hmm hab es jetzt mit verschiedenen Browsern versucht, der will leider nicht. Wenn ich es mit dem Appletviewer mache, dann kann man das Applet ja neu starten, aber da wird dan auch noch leider die destroy Methode aufgerufen. Ich würde das gerne so machen, dass er mal die Start Methode aufruft, dann mal die stop und wieder start und dannach erst stop und destroy.

Edit: Hab eine Möglichkeit gefunden. Ich habe durch Zufall gefunden, wenn ich in Eclipse das Applet starte und dann auf Applet --> Speichern klicke, dann wird nur die stop Methode aufgerufen und wenn ich wieder auf das Applet klicke, dann wird wieder die start Methoode aufgerufen.


----------

