una pagina HTML e quindi scaricata dal pc client per poi essere eseguita dal browser web) non può ad esempio leggere o scrivere dei file sul pc in cui essa viene eseguita proprio per il fatto che essa viene prelevata da internet e quindi potrebbe contenere del codice maligno.Le operazioni che un'applet non può compiere sono:
Queste regole però non vengono rispettate se l'applet è in locale,perchè si presume che l'utente conosca il programma e che confermi il codice sicuro.Queste regole non vengono anche ristettate dal noto appletviewer(un browser implementato nel JDK).
Diversamente dalle applicazioni,un'applet non ha bisogno del classico codice "extends Frame" o "extends JFrame" nella dichiarazione della classe,perchè un'applet è una componente grafica giàdalla nascita e quindi eredita automaticamente un frame.Essa può contenere qualunque componente grafico proprio come i comuni programmi.
La struttura generale di un'applet è:
utilizzando la comune classe applet.
utilizzando la classe JApplet contenuta in swing.
Nelle applet non è più presente il classico metodo main,il metodo che lo sostituisce è init,in questo metodo solitamente viene inserito tutto ciò che deve essere inizializzato alla partenza dell'applet come il posizionamento dei componenti grafici o il caricamento di immagini.Esse non hanno bisogno di un loro ascoltatore sulla finestra (il classico WindowListener per le comuni applicazioni) perchè è il broswer che si occupa di definirlo.In una classe applet oltre al metodo init contiene altri metodi per la sua corretta esecuzione:i metodi start,stop e destroy.L'esecuzione di questi metodi viene gestita direttamente dal broswer ed hanno una funzione importantissima.Il metodo start viene richiamato subito dopo init,ogni volta che ci si sposta su un'altra pagina (quindi si rende la pagina del browser inattiva) viene richiamato il metodo stop,se si ritorna sulla pagina che contiene l'applet (si rende la pagin del browser attiva) viene richiamato il metodo start e così via,il metodo destroy viene richiamato quando si chiude il browser e ha la funzione di distruggere l'applet.Solo i metodi init e destroy vengono richiamati solo una volta,gli altri posso essere richiamati quante volte si vuole,però se i metodi non vengono utilizzati è possibile non inserirli nell'applet.Lo scopo di questi metodi è quello di non tenere occupato il processore inutilmente.Includendo questi metodi nell'applet otterremo:
Compilando l'appet otterremo un file del tipo NomeApplet.class,non possiamo avviarla però come un comune programma perchè priva del metodo main e quindi si predisporràun file HTML che accoglieràla nostra applet.Il tag da utilizzare è <APPLET> e la sua forma base è:
Gli elementi WIDTH e HEIGHT specificano al browser,in pixel,le dimensioni da riservare per l'applet,di conseguenza l'applet saràcostretta a rispettare quelle dimesioni.Il file HTML saràtipo:
In questo caso l'applet avràuna dimensione di 500x500 e viene centrata nella pagina,se l'applet non è esegubile verràvisualizzato "Applet Non eseguibile".Altri elementi opzionali che possono essere aggiunti sono:
Inoltre si si possono passare dei parametri ad un'applet utilizzando determinati tag HTML in modo da permettere all'applet di utilizzare nel programma questi parametri.Il tag da utilizzare è:
mentre il per prelevare il parametro immesso nel codice HTML dalla nostra applet scriveremo:
in questo modo nella stringa p verràinserito il parametro passatogli via HTML.Cosa da tenere in considerazione è che il passaggio di parametri è solo in stringa,se si vuole passare un parametro numero quindi ci toccheràconvertire il parametro passato con il seguente codice:
se invece lo si vuole convertire in un double utilizzeremo:
e così via per poter convertire il parametro nel tipo che noi desideriamo.Esempio di un'applet che utilizza il passaggio di parametri:
Codice del .class:
e di seguito il codice HTML per utilizzare l'esempio descritto sopra:
- Leggere e scrivere file in locale
- Aprire una connessione con un server diverso da quello che la ospita
- Lanciare l'esecuzione di altri programmi sulla macchina locale
- Invocare il metodo System.exit()
- Accedere alle proprietàdel sistema
Queste regole però non vengono rispettate se l'applet è in locale,perchè si presume che l'utente conosca il programma e che confermi il codice sicuro.Queste regole non vengono anche ristettate dal noto appletviewer(un browser implementato nel JDK).
Diversamente dalle applicazioni,un'applet non ha bisogno del classico codice "extends Frame" o "extends JFrame" nella dichiarazione della classe,perchè un'applet è una componente grafica giàdalla nascita e quindi eredita automaticamente un frame.Essa può contenere qualunque componente grafico proprio come i comuni programmi.
La struttura generale di un'applet è:
Codice:
import java.applet.*;
public class <nome applet> extends Applet{
//attributi
//metodi
}
Codice:
import javax.swing.JApplet;
public class <nome applet> extends JApplet{
//attributi
//metodi
}
Nelle applet non è più presente il classico metodo main,il metodo che lo sostituisce è init,in questo metodo solitamente viene inserito tutto ciò che deve essere inizializzato alla partenza dell'applet come il posizionamento dei componenti grafici o il caricamento di immagini.Esse non hanno bisogno di un loro ascoltatore sulla finestra (il classico WindowListener per le comuni applicazioni) perchè è il broswer che si occupa di definirlo.In una classe applet oltre al metodo init contiene altri metodi per la sua corretta esecuzione:i metodi start,stop e destroy.L'esecuzione di questi metodi viene gestita direttamente dal broswer ed hanno una funzione importantissima.Il metodo start viene richiamato subito dopo init,ogni volta che ci si sposta su un'altra pagina (quindi si rende la pagina del browser inattiva) viene richiamato il metodo stop,se si ritorna sulla pagina che contiene l'applet (si rende la pagin del browser attiva) viene richiamato il metodo start e così via,il metodo destroy viene richiamato quando si chiude il browser e ha la funzione di distruggere l'applet.Solo i metodi init e destroy vengono richiamati solo una volta,gli altri posso essere richiamati quante volte si vuole,però se i metodi non vengono utilizzati è possibile non inserirli nell'applet.Lo scopo di questi metodi è quello di non tenere occupato il processore inutilmente.Includendo questi metodi nell'applet otterremo:
Codice:
import javax.swing.JApplet;
public class <nome applet> extends JApplet{
//attributi
public void init(){
}
public void start(){
}
public void stop(){
}
public void destroy(){
}
}
Codice:
<APPLET CODE=nomeapplet WIDTH=xxx HEIGHT=xxx></APPLET>
Codice:
<html>
<head>
<title>Applet</title>
</head>
<body>
<center>
<applet code="NomeApplet.class" width=500 height=500>
</applet>
Applet Non eseguibile.
</center>
</body>
</html>
- CODEBASE:specifica l'URL dove è posizionata l'applet,se non è indicato viene usato l'URL della pagina HTML che contiene l'applet
- ALT:contiene il messaggio da visualizzare quando il nonostate il browser riconosca il tag <APPLET> non riesca comunque a eseguire l'applet.
- NAME: permette di associare un nome all'applet
- ALIGN: indica dove deve essere allineata l'applet;i possibili valori sonoo:lleft,right,top,texttop,middle,absmiddle,baseline,bottom,absbottom
Codice:
<applet codebase=http://www.sitoDoveRisiedeL'appet.it/EsempioApplet/ code=NomeApplet.class width=500 height=500 alt="questa è un'applet" align=right name=MiaApplet></applet>
Codice:
<param name=nomeDelParametro value="valoreDelParametro" >
Codice:
String p=getParameter("NomeDelParametroHTML");
Codice:
int n=Integer.parseInt(getParameter("NomeDelParametroHTML"));
Codice:
double n=Double.parseDouble(getParameter("NomeDelParametroHTML"));
Codice del .class:
Codice:
import javax.swing.JApplet;
public class Parametri extends JApplet{
private String colore;
private int grandezza;
public void init(){
colore=getParameter("colore");
if(colore==null){
colore="bianco";
}
try{
grandezza=Integer.parseInt(getParameter("grandezza"));
}catch(Exception e){
grandezza=1;
}
}
public void start(){
}
public void stop(){
}
public void destroy(){
}
}
Codice:
<html>
<head>
<title>Applet</title>
</head>
<body>
<center>
<applet code="Parametri.class" width=500 height=500>
</applet>
Applet Non eseguibile.
<PARAM NAME = grandezza VALUE = 50>
<PARAM NAME = colore VALUE = blu>
</center>
</body>
</html>