Page précédenteIndex

CHAPITRE 10 - Les Applets

Le terme applet ou appliquette en français signifie "petite application" java s'exécutant à l'interieur d'une autre application. La plupart du temps, le terme désigne les classes java dérivant de la classe Applet et s'exécutant dans un navigateur web. Un applet est souvent de taille réduite pour permettre les transferts via Internet.

10.1 - Exécution d'une Applet

Ces applets ne sont pas lancées comme des programmes stand-alone, c'est-à -dire en lançant java maClasse. Une page HTML est nécessaire. Elle doit contenir un TAG dans lequel sera indiqué le programme Java à lancer. Les principaux navigateurs présents sur le marché possédent une JVM (Java Virtual Machine ) en standard mais ce sont souvent des JVM java 1 (1.1) . Dans ce cas, les navigateurs ne peuvent exécuter les classe écrites en Java 2. Il faut alors installer le JRE (Java Runtime Environment ) qui est une JVM Java 2 et qui ne contient que les éléments utiles à l'exécution des classes et non à leur compilation. Une applet s'exécute sur le poste CLIENT, c'est-à-dire le poste qui a appelé l'applet. L'applet est téléchargée par le navigateur et le JRE l'exécute. Il est à noter que les applets de grande taille peuvent être compressées grâce à l'utilitaire JDK jar pour optimiser les temps de chargement; cependant le navigateur interprête aussi bien les fichiers .jar que les fichiers .class.



10.2 - Notre première Applet

L'applet suivante charge simplement un bouton "ok"

import java.applet.*;
import javax.swing.*;
class TestApplet extends Applet{
   void init(){
      getContentPane().add(new Jbutton("ok"));
   }
}

Pour exécuter ce programme il faut donc écrire une page HTML qui fait référence à ce fichier.

<HTML>
   <BODY>

      <applet code="TestApplet.class" width="760" height="400" align="middle"</applet>
   </BODY>
</HTML>

Le fichier HTML doit se trouver dans le même répertoire que le fichier .class. Dans le cas contraire, l'instruction codebase="répertoire du .class" doit être rajouter au TAG. Il ne reste plus qu'à lancer le navigateur et à ouvrir le fichier HTML. Pour un exemple de fichier HTML lançant une applet Java 2, voir le paragraphe 10.5.


10.3 - Cycle de vie d'une Applet

Les applets ont un processus de vie lorsqu'elles tournent dans un navigateur. Elles suivent ce cycle :

init()   -> start()  -> stop()  -> destroy()


INIT:

L'applet est chargée dans le navigateur et sa méthode init() est exécutée ( une seule fois). C'est dans cette méthode que les composants de l'interface utilisateur sont généralement initialisés.

START:

Après la naissance, le navigateur lance l'applet en appelant la méthode start(). Si la page HTML qui a lancé le programme Java est quittée, ( pour aller à une autre URL ) et que l'utilisateur y retourne, la méthode start() sera relancée. La méthode start() est un bon moyen de lancer toutes les opérations comme du son ou des animations lors du lancement de la page HTML.

STOP:

Lorsque l'utilisateur change de page HTML, l'applet courante se met en mode "veille". La méthode stop() est appelée à ce moment. start() sera relancée si l'utilisateur revient sur la page HTML qui a lancé l'applet.

DESTROY:

Lorsque le navigateur se fermera la méthode destroy() sera exécutée. Cette méthode ne doit pas être appelée directement.


10.4- Passage de paramètres

Il est possible de passer dans la page HTML des paramètres qui seront transmis à l'applet. Les paramètres sont definis dans la page HTML comme il suit:

<param name="[Nom du paramètre]" value="[valeur]">

Exemple: <param name="color" value="blue">
Nous disposons donc d'un paramètre nommé "color" et valant "blue". Il n'est possible de passer que des chaînes de caractères en paramètre. Pour récupérer ces valeurs, nous utilisons la méthode getParameter(String s). Exemple:

String sMonParametre=getParameter("Color"); //sMonParametre="blue"


10.5- Model de page HTML d'appel d'une applet Java 2:

<HTML>
   <TITLE>Titre de l'application</TITLE>
   <BODY>
      <!-- Partie lue par InterNet Explorer !-->
      <object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" width="760" height="400" align="middle">
      <PARAM NAME="CODE" value="ex.MonExemple.class">
      <PARAM NAME="NAME" value="MonExemple">
      <PARAM NAME=TRACE VALUE="ON">
      <PARAM NAME="cache_option" VALUE="PLUGIN">

      <PARAM NAME="cache_archive" VALUE="exemple.jar">
      <!-- Partie lue par Netscape qui ignore le tag <COMMENT> !-->
      <comment>
      <embed type="application/x-java-applet;version=1.3" width="760" height="400" align="middle" CODE="ex.MonExemple.class" name="MonExemple" cache_option="PLUGIN" cache_archive="exemple.jar" TRACE="ON">
      </OBJECT>
   </BODY>
</HTML>

Remarques:





TD 10: Les applets

Exercice 1

Modifier l'applet de test pour que les différentes étapes du cycle de vie des applets s'affichent dans la console Java.

Exercice 2

1- Reprendre les écrans des TD9 et les transformer en applet.

2- Modifier ces applets pour qu'elles soient à la fois des JApplet et des stand-alone que l'on pourra lancer sans navigateur ( classes possédant une méthode main() )


solutions





Page précédenteIndex