Java rende possibile l'introduzione di animazioni nei documenti HTML. Prima che la Sun mettesse a disposizione del pubblico il linguaggio Java, l'unico modo possibile per generare animazioni in ambiente Web consisteva nello sfruttare, con qualche espediente, la Common Gateway Interface (CGI). Sinteticamente, si doveva scrivere per il server un programma CGI che, richiamato (indirettamente) dal client, inviasse le immagini sequenzialmente usando i MIME del protocollo HTTP. Gli svantaggi di questo metodo sono rilevanti. In primo luogo, la velocità dell'animazione dipende pesantemente dalla velocità del collegamento tra client e server, ovvero da un parametro incostante ed aleatorio. Questo fatto spesso rende accettabili le animazioni solamente quando sussiste una alta capacità della rete nella connessione end-to-end. In secondo luogo, le animazioni ripetive (cioè quelle che ripropongono periodicamente le stesse immagini) costringono il server a mantenere, per tutta la durata dell'animazione, una connessione attiva con il client. Ciò porta ad uno spreco eccessivo della capacità della rete. Infine, le animazioni non partono automaticamente quando il client Web carica la pagina HTML. Al contrario, l'utente deve provvedere esplicitamente ad avviare le animazioni una per volta.
Come si può notare, i file che contengono il sonoro e le immagini sono reperiti attraverso URL e quindi essi possono provenire da qualsiasi sito di Internet. Inoltre, alterando semplicemente il documento HTML, si ha la possibilità di cambiare animazione e sonoro.
Come si nota nello schema di sopra, lo applet si interfaccia al browser per la gestione dei flussi dei dati di ingresso e uscita. Il browser provvede alla scompattazione dei file compressi nei vari formati, alla gestione delle periferiche per l'esecuzione del sonoro, etc. Ciò semplifica notevolmente il codice Java che costituisce lo applet e provvede pure a fornire una buona garanzia di sicurezza. Sarebbe molto rischioso se gli applet potessero accedere direttamente alle periferiche della macchina del client. Bisogna ricordare infatti che gli applet vengono mandati in esecuzione automaticamente con il caricamento di pagine HTML provenienti da tutto il mondo, senza alcun controllo preventivo. La tentazione di scrivere applet dannosi per il client sarebbe forte se questi ultimi potessero gestire direttamente le periferiche.
Come esempio significativo, si può illustrare come mostrare una immagine caricata tramite URL. Il codice seguente ha senso solo se implementato in uno applet, cioè in una sottoclasse di java.applet.Applet. Infatti, per effettuare le URL è necessario che l'applicazione operi nell'ambiente di un browser Web. Conseguentemente, l'applicazione stessa deve essere uno applet. Per prima cosa, si definiscono le variabili necessarie allo scopo:
Image img_1; URL img_1_URL; coord_x = 100; coord_y = 50;
Poi si crea la URL tramite un costruttore di essa fornito nella classe di libreria java.net.URL:
img_1_URL = new URL("http://labcad1.ing.unifi.it/images/immagine_1.gif");
Quindi si ottiene l'immagine con il metodo getImage (classe Applet):
img_1 = getImage(img_1_URL);
Infine si disegna l'immagine ottenuta sovrascrivendo (override) il metodo astratto public void paint(Graphics g) della classe superiore (superclass) astratta java.awt.Component:
public void paint(Graphics disegna) {
/* Si invoca il metodo drawImage di java.awt.Graphics che permette di visualizzare una
immagine alle coordinate volute */
disegna.drawImage(img_1, coord_x, coord_y, this);
}
Per generare una animazione sarà sufficiente visualizzare una alla volta più immagini ottenute nella maniera appena descritta. A tale scopo si può usare, per esempio, anche un normale ciclo for.