Beruflich Dokumente
Kultur Dokumente
Unapplet un tipo particolare di programma Java che pu essere incorporato in una pagina HTML e visualizzato mediante un browser web abilitato. Un browser abilitato per luso di Java se incorpora il Java Plug-in, un componente del Java Runtime Environment (JRE) che consente di eseguire lapplet in un'istanza della macchina virtuale Java (JVM) incorporata nel processo del browser Web. A partire dalla versione di Java 6 update 10, il Java Plug-in stato aggiornato (Java Plug-in di ultima generazione) consentendo di eseguire le applet all'esterno del browser, in una o pi istanze separate della JVM. Per ulteriori informazioni in merito alluso del Java Plug-in vi suggerisco di leggere larticolo al seguente url: http://www.java.com/it/download/help/new_plugin.xml. Unapplet una classe pubblica di Java che estende la classe JApplet del package javax.swing. Si osservi che la classe JApplet una sottoclasse di java.applet.Applet.
Container
JComponent
Panel
JPanel
Applet
JApplet
Per ci che riguarda il codice, avremo: import javax.swing.* ; import java.awt.* ; public class PrimaApplet extends JApplet { //codice dellapplet }
1
Bocchi Cinzia Ultimo aggiornamento: 12/11/2011
Lattributo codetype indica il tipo di oggetto che stiamo inserendo, cio application/java. Lattributo classid specifica il nome del file class. Gli attributi width e height determinano le dimensioni in pixel della finestra che conterr lapplet. Tra i due tag <object> e </object> possibile inserire un testo, che sar mostrato solo nel caso in cui il browser non possa visualizzare lapplet.
Un file HTML per contenere lapplet PrimaApplet deve presentare almeno i seguenti elementi: <html> <head> <title> titolo della finestra </title> </head> <body> <object codetype= "application/java" classid= "java:PrimaApplet.class" width= "300" height= "300"> qui si vedrebbe unapplet, se il browser potesse visualizzarla </object> </body> </html> Ulteriori attributi del tag object sono descritti nella traduzione italiana della specifica HTML 4.01, reperibile allurl: http://www.diodati.org/w3c/html401/struct/objects.html.
2
Bocchi Cinzia Ultimo aggiornamento: 12/11/2011
Lesecuzione di questi metodi viene attivata direttamente dal Java Plug-in, che in questo modo, pu controllare il funzionamento dellapplet. Appena unapplet viene caricata, mediante lapertura del file HTML nel browser, viene eseguito il metodo init e successivamente il metodo start. Se ci si sposta su una pagina diversa, viene invocato il metodo stop, mentre ogni volta che si torna alla pagina contenente lapplet, viene richiamato il metodo start. Infine, quando il browser viene chiuso, viene invocato il metodo destroy. Descriviamo, pi dettagliatamente, le funzioni svolte dai quattro metodi.
init
Questo metodo serve per tutte le inizializzazioni dellapplet. Funziona come un costruttore e viene chiamato automaticamente quando lapplet viene eseguita la prima volta. Le applet possono avere un costruttore predefinito, ma consuetudine eseguire tutte le inizializzazioni nel metodo init.
start
Questo metodo viene chiamato automaticamente dopo lesecuzione di init e ogniqualvolta lutente ritorna alla pagina contenente lapplet, dopo aver visitato altre pagine. Il metodo start il punto in cui solitamente viene riavviato un thread per lapplet, per esempio per riprendere unanimazione. Se lapplet non compie alcuna operazione che deve essere sospesa quando lutente esce dalla pagina Web corrente, non occorre ridefinire (override) questo metodo.
stop
Questo metodo viene chiamato automaticamente quando lutente esce dalla pagina in cui si trova lapplet. Ha lo scopo di interrompere unattivit quando lutente non presta attenzione allapplet. Se lapplet non esegue animazioni, non riproduce file audio e non esegue elaborazioni in un thread, la ridefinizione di questo metodo non necessaria.
destroy
Questo metodo viene richiamato solo quando il browser viene chiuso normalmente. Deve essere ridefinito qualora, alla terminazione dellapplet, debbano essere rilasciate risorse aggiuntive.
3
Bocchi Cinzia Ultimo aggiornamento: 12/11/2011
1. unapplet deve essere creata come sottoclasse public della classe JApplet;
fondamentale che sia pubblica, altrimenti non potr essere caricata; 2. unapplet non contiene il metodo main; 3. il codice di inizializzazione, solitamente contenuto nel costruttore della classe, deve essere spostato allinterno del metodo init dellapplet; 4. non necessario costruire esplicitamente loggetto applet poich di questo si occupa il browser. Inoltre, per quanto riguarda gli elementi dellinterfaccia utente, non necessario:
4. 5.
@SuppressWarnings("serial") public class Data extends JApplet { public void init() { JPanel panel = new JPanel(new BorderLayout()); final JLabel dataLabel= new JLabel("", SwingConstants.CENTER); JButton dataButton= new JButton("DATA"); panel.add(dataButton, BorderLayout.SOUTH); panel.add(dataLabel, BorderLayout.CENTER); add(panel); dataButton.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ long time =System.currentTimeMillis();
4
Bocchi Cinzia Ultimo aggiornamento: 12/11/2011
FILE data.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Data</title> </head> <body> <object codetype="application/java" classid="java:Data.class" width="300" height="300"> Qui compare un'applet, se il browser pu visualizzarla </object> </body> </html>
Il metodo statico della classe System currentTimeMillis, restituisce in un long la data di sistema. Il costruttore della classe Date crea un oggetto contenente la data di sistema. Questa viene poi convertita in una stringa.
Visualizzazione di unapplet
Prima di visualizzare unapplet in un browser, possibile testarla con il visualizzatore di applet fornito con il JDK, appletviewer. Per utilizzare il visualizzatore di applet si pu immettere nella riga di comando appletviewer nome_file.html oppure ci si pu avvalere della funzionalit offerta dallambiente di sviluppo impiegato. Il visualizzatore di applet valido solo per la prima fase di collaudo, ma a un certo punto occorrer eseguire lapplet in un browser per vederla allo stesso modo di un potenziale utente. In particolare appletviewer: - mostra solo lapplet e non interpreta il codice HTML - se il file HTML contiene pi applet, apre pi finestre. Per visualizzare correttamente unapplet necessario che il Java Plug-in sia aggiornato. Mantenendo aggiornato il plug-in sempre possibile sfruttare le funzioni pi recenti e pi potenti di Java. Per informazioni sullo scaricamento del plug-in e sulla configurazione, consultare lindirizzo http://java.sun.com/getjava.
5
Bocchi Cinzia Ultimo aggiornamento: 12/11/2011
Vi suggerisco anche di leggere larticolo relativo alla disinstallazione delle vecchie versioni di Java; si trova allurl http://www.java.com/it/download/uninstall.jsp. Importante! Se si esegue una modifica allapplet e si ricompila, necessario riavviare il browser in modo che carichi i nuovi file di classe; il semplice aggiornamento della pagina HTML non caricher il nuovo codice.
6
Bocchi Cinzia Ultimo aggiornamento: 12/11/2011
Esempio
La seguente applet mostra una stringa passata come parametro. FILE Stringa.java
import javax.swing.JApplet; import javax.swing.JLabel; @SuppressWarnings("serial") public class Stringa extends JApplet { public void init() { String str= getParameter("stringa"); JLabel label= new JLabel(str); add(label); } }
FILE stringa.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Stringa</title> </head> <body> <object codetype="application/java" classid="java:Stringa.class" width="300" height="300"> Qui compare un'applet, se il browser pu visualizzarla <param name="stringa" value="la stringa passata come parametro"> </object> </body> </html>
Per garantire che lapplet venga eseguita correttamente nel caso si verifichino dei problemi nella lettura dei parametri, necessario prevedere dei valori di default da assegnare agli attributi. Nellesempio seguente, viene assegnato un valore predefinito alla stringa str se il metodo getParameter restituisce null, cio se nel file html non stato specificato il valore del parametro stringa.
import javax.swing.JApplet; import javax.swing.JLabel; @SuppressWarnings("serial") public class Stringa extends JApplet { public void init() { String str= getParameter("stringa"); if (str==null) str= "Valore del parametro mancante";
7
Bocchi Cinzia Ultimo aggiornamento: 12/11/2011
Quest'opera stata rilasciata con licenza Creative Commons Attribution-ShareAlike 3.0 Unported. Per leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/by-sa/3.0/ o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
8
Bocchi Cinzia Ultimo aggiornamento: 12/11/2011