Applet Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell’Informazione Università di Siena Via Roma 56 – 53100 – SIENA Uff. 0577233606 [email protected] www.dii.unisi.it/~rigutini/ Applet Una applet è un tipo speciale di programma Java che un browser abilitato può scaricare da internet ed eseguire. Le applet sono tipicamente inserite in una pagina web ed eseguite nel contesto del browser. Per creare una applet, è sufficiente creare una nuova classe come sottoclasse della classe java.applet.Applet presente nel JDK che fornisce l'interfaccia standard tra la applet e l'ambiente del browser. Swing fornisce una speciale sottoclasse di Applet, chiamata javax.swing.JApplet, che dovrebbe essere utilizzata per tutte quelle applets che utilizzano componenti Swing per costruire la loro GUI. Ciclo di vita di una applet Quando una applet è caricata in una pagina web, il browser gestisce il ciclo di vita della applet chiamando appositi metodi definiti nella interfaccia Applet Ciclo di vita di una applet: fondamentalmente ci sono 4 metodi nella classe Applet che devono essere implementati: init: invocato per l'inizializzazione di tutto ciò che è necessario alla applet. Esso è chiamato subito dopo l'attributo “param” del tag “applet” dell'html. start: chiamato automaticamente dopo init. Esso è chiamato anche quando l'utente ritorna nella pagina della applet dopo aver visitato altre pagine web. stop: chiamato automaticamente dal browser quando l'utente lascia la pagina contenente la applet. Questo è il metodo normalmente utilizzato per fermare le animazioni. destroy: chiamato quando il browser viene chiuso normalmente. Quindi una applet nel suo ciclo di vita, può essere inizializzata una ed una Applets vs. Applications Agli inizi, uno dei critici vantaggi che Java applets avevano nei confronti delle applicazioni java era che esse potevano essere facilmente distribuite sul web mentre le applicazioni richiedevano un più complicato processo di installazione. Inoltre poiché venivano eseguite su client remoti, di default dovevano essere eseguite in ambiente ristretto per la sicurezza, chiamato “sandbox”, per assicurare che esse non facessero operazioni distruttive sul computer dell'utent, come per esempio letture e scritture su fs. Comunque l'introduzione di Java Web Strat ha reso possibile che anche applicazioni Java fossero distribuite sul web e che siano eseguite in ambiente limitato. Questo significa che ad oggi la più grande differenza tra java applet e applicazione java sta nel fatto che la prima viene eseguita nel ambiente del browser web, mentre la seconda è una applicazione standalone. Caricare una applet Per caricare una applet in una pagina web è necessario specificare la classe applet con una apposito applet tag html: <applet code=AppletWorld.class width="200" height="200"></applet> Per lo sviluppo o il test, è possibile eseguire una applet attraverso il “lightweight appletviewer”, una appliocazione che è fornita con il JDK. Per esempio, se AppletWorld.html è il file html che contiene la applet, allora è il comando da utilizzare è: appletviewer AppletWorld.html Una volta verificato che la applet funziona attraverso appletviewer, è importante verificare che essa funzioni correttamente anche in un browser. Ogni volta che la applet viene ricompilata, è necesssario che il browser la ricarichi attraverso i tasti "Shift + Reload". Esempio: Una applet che disegna un rettangolo e stampa una scritta in una pagina html. import javax.swing.JApplet; import java.awt.Graphics; public class HelloWorld extends JApplet { public void paint(Graphics g) { g.drawRect(0, 0, getSize().width - 1, getSize().height - 1); g.drawString("Hello world!", 5, 15); } } HMTL: <applet code="HelloWorld.class" codebase="examples/" archive="helloWorld.jar" height="30" width="150"></applet>