import java.applet.Applet; import java.awt.*; /** Diese Klasse veranschaulicht den Lebenszyklus eines Applets. */ public class InitStartStop extends Applet { int initCount = 0; //Zaehler der Aufrufe von init int startCount = 0; //Zaehler der Aufrufe von start int stopCount = 0; //Zaehler der Aufrufe von stop int destroyCount = 0; //Zaehler der Aufrufe von destroy /** Diese Methode zeichnet ein Diagramm mit den aktuellen Zustaenden der Zaehler der Applet-Operationen init, start, stop, destroy. */ public void paint (Graphics g) { //Vorbereitung: alles weiss; //!size wird in Java2 nicht mehr verwendet! g.setColor(Color.white); g.fillRect(0,0,size().width, size().height); //zeichne alle Standardteile der Graphik g.setColor(Color.red); g.drawLine(120, 20, 120, 220); g.drawLine(120,220, 300, 220); //Zeichne die Marken g.setColor(Color.gray); g.drawString("Init Count", 5, 50); g.drawString("Start Count", 5, 100); g.drawString("Stop Count", 5, 150); g.drawString("Destroy Count", 5, 200); //Zeichne das Raster g.setColor(Color.lightGray); for(int x = 120+25; x<300; x+= 25) { g.drawLine(x, 20, x, 199); } //Zeichne die Eintraege der Zustaende g.setColor(Color.black); g.fillRect(120,30,initCount * 25, 40); g.fillRect(120,80,startCount * 25, 40); g.fillRect(120,130,stopCount * 25, 40); g.fillRect(120,180,destroyCount * 25, 40); } /** Diese Methode redefiniert die gleichnamige Methode von Applet und ruft nur paint auf. */ public void update(Graphics g) { paint(g); } /** Diese Methode wird einmal ausgefuehrt, wenn das Applet geladen wird. */ public void init() { initCount++; System.out.println("init"); repaint(); } /** Diese Methode wird nach init aufgerufen und ausserdem, wenn das Applet gestoppt und wieder gestartet wird. Die Methode wird jedesmal aufgerufen, wenn ein HTML- Dokument des Applets auf dem Bildschirm dargestellt wird. */ public void start() { startCount++; System.out.println("start"); repaint(); } /** Diese Methode wird aufgerufen, wenn der Browser das HTML-Dokument mit dem Applet verlaesst. */ public void stop() { stopCount++; System.out.println("stop"); repaint(); } /** Diese Methode wird aufgerufen, wenn die Umgebung (z.B. der Browser) das Applet aus dem Speicher loescht. */ public void destroy() { destroyCount++; System.out.println("destroy"); repaint(); } }