Mettre une applet dans une page html
Mettre une applet dans une page html
Une applet est une application qui tourne dans un navigateur, celui-ci téléchargeant le bytecode et les ressours nécessaires.
Nous donnons ici une solution pour mettre une applet dans une page html. Nous verrons ensuite comment écrire une applet. On pourra aussi remarquer que de nombreuses applets se trouvent dans les différents chapitres de ce cours, en particulier dans les chapitres sur les interfaces graphiques et les images. Les codes sources de ces applets sont systématiquement fournis ; en regardant le codes source des pages html, on peut voir les balises correspondantes.
La balise applet fonctionne sur la plupart des navigateurs mais doit en principe être abandonnée, nous vous indiquons donc la balise object.
Avec un fichier.jar
Sous eclipse par exemple, il n'est pas difficile de construire un fichier .jar contenant l'ensemble du bytecode nécessaire à l'applet ainsi que d'autres ressources si besoin (fichiers, images, sons...). Ce fichier devra alors avoir des droits d'accès suffisants (644 sous Unix). On utilise alors une balise du type suivant :
<CENTER><object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
width="200" height="200">
<param name="archive" value="MonAppli.jar">
<param name="codebase" value="jarApplets">
<param name="code" value="MonAppli">
<param name="fichier" value="donnees.txt">
<!--[if gte IE 7]> <!-->
<object type="application/x-java-applet"
classid="java:MonAppli.class"
archive="MonAppli.jar"
codebase="jarApplets"
width="200" height="200">
<!-- Konqueror browser needs the following param -->
<param name="archive" value="MonAppli.jar">
<param name="code" value="MonAppli">
<param name="fichier" value="donnees.txt">
<!-- Safari browser needs the following param -->
<param name="JAVA_CODEBASE" value="jarApplets">
<param name="fichier" value="donnees.txt">
<font color="red">alt : l'applet n'est pas visible par votre navigateur ; pour voir l'application, vous devez télécharger le code, le compiler et l'exécuter
</object>
<!--<![endif]-->
<!--[if lt IE 7]>
<font color="red">alt : l'applet n'est pas visible par votre navigateur ; pour voir l'application, vous devez télécharger le code, le compiler et l'exécuter
<![endif]-->
</object></center>
- code et classid : ci-dessus MonAppli ou MonAppli.class ou java:MonAppli.class, donnent le nom de la classe qui étend JApplet et qui sert à lancer l'applet ;
- archive : ci-dessus MonAppli.jar donne le nom du fichier .jar contenant l'ensemble du bytecode nécessaire à l'applet ainsi que d'autres ressources si besoin (fichiers, images, sons...) ;
- codebase et JAVA_CODEBASE : ci-dessus jarApplets, donne le nom du répertoire où se trouve le fichier d'archive.
- sur l'exemple, le paramètre de nom fichier a été ajouté, cela servirait pour une applet où on récupérerait cette valeur par la méthode getparameter de la classe JApplet ; on pourrait avoir dans la méthode init de la classe MonAppli :
  String nomFichier = getParameter("fichier");
nomFichier vaudrait alors donnees.don.
Si l'applet n'a pas besoin de paramètre tel que fichier, les deux lignes correspondantes n'existent pas. On peut bien sûr aussi utiliser plusieurs paramètres supplémentaires.
Le fichier contenant l'exemple ci-dessus de balise object., dans lequel néanmoins nous avons enlevé le nom de la classe étendant JApplet (pour code et classid, MonAppli ci-dessus), du fichier .jar (pour archive, MonAppli.jar ci-dessus) et du répertoire (pour codebase et JAVA_CODEBASE, jarApplets ci-dessus). Nous avons aussi retiré la ligne correspondant au paramètre de nom fichier ci-dessus.
Sans fichier.jar
Tous les fichiers .class ainsi que les autres ressources nécessaire doivent être dans un même répertoire avec les droits suffisants (644 sous Unix). On peut utiliser une balise du type suivant :
<CENTER>
<!--[if IE]>
<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
width=85" height="85">
<param name="codebase" value="bin">
<param name="code" value="MonAppli">
<param name="fichier" value="donnees.txt">
<font color="red">alt : l'applet n'est pas visible par votre navigateur ; pour voir l'application, vous devez télécharger le code, le compiler et l'exécuter</font>
</object>
<![endif]-->
<!--[if !IE]> <!-->
<object classid="java:MonAppli.class"
codebase="bin"
type="application/x-java-applet"
width="85" height="85">
<param name="code" value="MonAppli">
<!-- Safari browser needs the following param -->
<param name="JAVA_CODEBASE" value="bin">
<param name="fichier" value="donnees.txt">
<font color="red">alt : l'applet n'est pas visible par votre navigateur ; pour voir l'application, vous devez télécharger le code, le compiler et l'exécuter</font>
</object>
<!--
- code et classid : ci-dessus MonAppli ou MonAppli.class ou java:MonAppli.class, donnent le nom de la classe qui étend JApplet et qui sert à lancer l'applet ;
- codebase et JAVA_CODEBASE : ci-dessus jarAppletsdonne le nom du répertoire où se trouve le fichier d'archive.
- sur l'exemple, le paramètre de nom fichier a été ajouté, cela servirait pour une applet où on récupérerait cette valeur par la méthode getparameter de la classe JApplet ; on pourrait avoir dans la méthode init de la classe MonAppli :
  String nomFichier = getParameter("fichier");
nomFichier vaudrait alors donnees.don.
Si l'applet n'a pas besoin de paramètre tel que fichier, les deux lignes correspondantes n'existent pas. On peut bien sûr aussi utiliser plusieurs paramètres supplémentaires.
Le fichier contenant l'exemple ci-dessus de balise object., dans lequel néanmoins nous avons enlevé le nom de la classe étendant JApplet (pour code et classid, MonAppli ci-dessus) et du répertoire (pour codebase et JAVA_CODEBASE, jarApplets ci-dessus). Nous avons aussi retiré la ligne correspondant au paramètre de nom fichier ci-dessus.
© Irène Charon, Télécom ParisTech 2011