Ciao a tutti!
Il dubbio mi è sorto rispondendo alla domanda di un mio amico sul ciclo di vita delle applet. Per quanto ne so (studiando dalla documentazione e da vari libri) i metodi vengono chiamati come segue:
init : al caricamento dell'applet
start : dopo init e ogni volta che l'applet entra nel campo visivo del browser
stop : prima di destroy e ogni volta che l'applet esce dal campo visivo del browser (scrollo la pagina finchè l'applet scompare, riduco il browser a icona, ecc...)
destroy : quando l'applet viene definitivamente scaricata
Per dimostrarlo ho scritto il seguente codice :
codice:import java.applet.*; import javax.swing.*; public class JHello extends JApplet { public void init() { getContentPane().add(new JLabel("Hello!")); System.out.println("Init called"); } public void start() { System.out.println("Start called"); } public void stop() { System.out.println("Stop called"); } public void destroy() { System.out.println("Destroy called"); } }
che dovrebbe stampare sulla console di Java la varie fasi del ciclo di vita. Con appletviewer funziona tutto come previsto, ma sui browser no !
Viene chiamato init(), start() e basta, nessuna traccia nè di stop nè di start, sia riducendo a icona che scrollando, fino a che non distruggo l'applet, dove vengono effettivamente chiamati stop() e destroy(),
Ho provato su diversi browser (IE, Mozilla, Konqueror, ecc...), sempre stesso risultato.
Che dipenda dall'html (in cui metto solo <applet code ="NomeClasse">...</applet> ) ?
Potreste provare anche voi?
Grazie