Java logo PredDalej

Demonstracia zivotneho cyklu appletu

Applet, ktory prave bezi nad tymto textom v sivom obdlzniku vam umozni sledovat jeho zivotny cyklus. Skuste napriklad 'Reloadnut' tuto stranku pripadne zmenit velkost okna browsera. Ak chceme sledovat tieto volania presnejsie, je vhodne pozorovat aj standardny vystup. V NetscapeNavigatore otvorime okno JavaConsole z menu Options.

POZOR: Neodporucam bezhlavo 'reloadovat' a robit podobne pokusy nekonecne vela krat, pretoze buffer, ktory je alokovany pre stav, ma 256 bytov (tusim). Nepovazoval som za take dolezite testovat velkost bufferu. Avsak ak niekto chce vyskusat, co to urobi, moze :-) Aspon vsetci vieme, kde je chyba. Nie ako vo W*ndows95.

Zdrojacik vyzera takto:

/*
    rezervovane slovo 'import' ma podobny vyznam ako
    rezervovane slovo 'include' v C++;
    'java.awt.*' znamena, ze potrebujeme vsetky
    triedy, ktore zacinaju na 'java.awt.'
    '*' (hviezdicka) ma substitucny vyznam
*/

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


// definicia triedy 'zivot'

public class zivot extends Applet {

    // retazec (buffer), kde budeme mat ulozeny stav appletu
    StringBuffer Stav = new StringBuffer(256);

    // inicializacia nasho appletu
    public void init() {
        super.init();
        resize(600,40);             // zmena velkosti
        System.out.println("init()");
        Stav.append(" init() ");
        repaint();
    }

    // start nasho appletu
    public void start() {
        System.out.println("start()");
        Stav.append(" start() ");
        repaint();
    }

    // pozastavenie nasho appletu
    public void stop() {
        System.out.println("stop()");
        Stav.append(" stop() ");
        repaint();
    }

    // tato metoda sa vyvola, ak applet zanika
    public void destroy() {
        System.out.println("destroy()");
        Stav.append(" destroy() ");
        repaint();
    }

    // ... a tato, ak sa nieco na obrazovke vykresluje
    public void paint(Graphics g) {
        g.drawString(Stav.toString(),0,10);
    }

    // obsluha udalosti od uzivatela
    public boolean handleEvent(Event event) {
        return super.handleEvent(event);
    }

}

Zaciatok