Vous l'avez peut-être remarqué, les applets Java se
font rares. Au rayon des inconvénients ses détracteurs
mettent en avant la lenteur de chargement ou d'exécution
de certaines d'entre elles. De plus, des problèmes de compatibilité
existent entre navigateurs: un comble pour une architecture Java.
Ces difficultés proviennent des différentes JVM (Java
Virtual Machine) disponibles selon les versions ou les types de
navigateurs : elles n'interprètent pas toutes le langage
Java de la même façon.
Malgré ces défauts, cette technologie n'est pas dénuée
d'intérêt, en voici quelques exemples :
- "Contact
Applet" : Economise de la place sur une page d'accueil
par exemple.
- Des flocons
de neige tombent sur vos images...
- Comprendre le threading
d'un seul coup d'oeil (cliquez sur les trois applets).
Examinons maintenant l'installation et le fonctionnement général
des applets.
L'installation
Voici la procédure à suivre pour faire fonctionner
le plus rapidement possible une applet au sein de son navigateur.
On considère l'applet suivante, un simple "Hello World"
dont voici le code source :
import java.awt.*;
public class HelloWorld extends java.applet.Applet
{
public void init ()
{
add(new
Label("Hello world !"));
}
}
Il s'agit ici de comprendre comment exécuter sur son navigateur
une telle applet.
Sauvegardez ces lignes de code dans un fichier nommé "HelloWorld.java".
Afin que ce code soit compréhensible par la JVM, il faut
le maintenant le compiler afin d'obtenir un ".class",
du bytecode autrement dit :
( Installez un compilateur
Java si besoin)
javac HelloWorld.java
Si tout s'est bien passé vous obtenez un fichier nommé
"HelloWorld.class",
interprétable par la machine virtuelle.
Nous en sommes à la moitié du chemin, il faut maintenant
intégrer l'applet au sein du code HTML, ceci est rendu
possible grâce à la balise <APPLET>. Cette dernière
est normalement remplacée par la balise <OBJECT> depuis
HTML 4 mais <APPLET> est la syntaxe que vous croiserez le
plus souvent :
<APPLET code="HelloWorld.class"
codebase="../tst" width="80" height="30">
</APPLET>
Vous devriez maintenant apercevoir ci-dessous un magnifique "Hello
world !"
On trouve ici au sein de cette balise <APPLET>, les attributs
"code", "codebase" (facultatif), "width"
et "height". Le premier spécifie tout simplement
le nom du fichier ".class", le second permet d'indiquer
où se trouve le fichier ".class" par rapport au
fichier HTML lorsqu'ils ne sont pas tous les deux dans le même
répertoire. Enfin les deux derniers attributs spécifient
la taille que l'on souhaite attribuer à l'applet sur la page
HTML.
Il existe d'autres attributs
facultatifs que l'on peut trouver dans la balise <APPLET>.
De plus, certaines applets sont prévues pour recevoir un
nombre variable de paramètres. Dans ce cas, ils sont
passés de la sorte :
(exemple avec l'applet "neige" mentionnée au début
de l'article)
<APPLET CODE="neige.class" WIDTH="200"
HEIGHT="100">
<PARAM NAME="image" VALUE="mon_image.jpg">
<PARAM NAME="strength" VALUE="3">
</APPLET>
L'applet est alors capable d'appliquer ses paramètres à
l'application. Ici la neige s'appliquera sur une image nommée
"mon_image.jpg", avec une force de 3.
Une applet bien documentée par son auteur indique les paramètres
qu'elle est susceptible de recevoir.
Quelques principes généraux
Pour des raisons de sécurité évidentes,
les applets ne sont pas tout à fait des applications Java
comme les autres. Imaginez qu'une applet mal intentionnée
soit capable de formater votre disque dur... En fait les applets
n'ont pas accès au système de fichier des
machines sur lesquelles elles s'exécutent. Une applet ne
peut pas non plus établir de connection réseau autre
que celle qui existe entre elle et la machine qui l'héberge.
Elles ont par contre le pouvoir de réagir aux actions de
la souris, du clavier ou du système (voir les threads).
Pour notre exemple "Hello World", nous avons utilisé
:
public class HelloWorld extends java.applet.Applet
Une applet est l'instanciation d'une classe dérivée
de la classe "Applet" située dans le paquetage
java.applet. Cette classe "Applet" hérite de plusieurs
classes.
L'utilisation de la clause "import" en début de
code...
import java.awt.*
... permet en quelque sorte de définir un chemin (l'équivalent
du "path") destiné à simplifier l'écriture
du programme.
Enfin, une applet n'est pas éternelle, son "cycle de
vie" se définit de la manière suivante :
- Le navigateur la présence d'une applet grâce à
la balise <APPLET>, il crée une instance de cette applet
par la méthode "init()".
- L'exécution de l'applet se fait par la méthode "start()".
Si la page est rechargée cette méthode est systématiquement
rappelée. Il se peut également que la méthode
"init()" soit rappelée, cela dépend
du navigateur.
- Lorsque l'internaute quitte la page où est située
l'applet, l'exécution de celle-ci est stoppée par
le navigateur grâce à la méthode "stop()".
- Ca n'est que lorsque le navigateur sera fermé que l'instance
de l'applet sera détruite via la méthode "destroy()".
Nous avons maintenant fait le tour de quelques principes généraux
de cette technologie. Dans un prochain article nous vous présenterons
une sélection d'applets particulièrement intéressantes,
qui vous donnera peut-être l'envie à votre tour d'insérer
l'une d'entre elles sur votre site.
|