3/ Les applets

Une applet est un programme Java s'exécutant sur une page WEB. Ce sont en fait des bytecodes (*.class) que vous téléchargez, puis exécutez sur votre propre machine.
Pour exécuter une applet, vous devez disposer d'un navigateur  WEB (par exemple Netscape Communicator ou Internet Explorer) compatible Java qui interprétera les bytecodes.

IE 3 (Internet Explorer 3), Netscape 2.x et Netscape 3.x sont compatibles Java 1.02
IE 4 et Netscape 4 exécutent Java 1.1

Pour remédier à ce problême, Sun a développé un plug-in qui met à la disposition d'IE et de Netscape, l'environnement d'exécution de Java le plus récent.

La classe Applet (package java.applet)

Le applets sont créées à partir d'une classe Java qui étend la classe java.applet.Applet.
 

Quelques méthodes

void destroy()
        // Méthode appelée par le navigateur lorsque l'applet ne sert plus, pour libérer les ressources.

void init()
        // Méthode appelée par le navigateur lorsque l'applet est chargée.
        //Cette méthode rassemble toutes les initialisations nécessaires à l'applet.
        // Elle est comparable à un constructeur.
        // En principe, une applet devra traiter les valeurs PARAM passée dans le code HTML
        // et ajouter les composants de l'interface utilisateur.

void setSize(int width, int height)
        // Change les dimensions de l'applet en fixant une nouvelle longueur et une nouvelle largeur.
        // Ne fonctionne pas toujours correctement avec tous les navigateurs.

void start()
        // Méthode appelée par le navigateur pour demander l'activation de l'applet,
        // après l'appel de la méthode init.
        // Elle est appelée chaque fois que l'utilisateur revient à la page contenant l'applet
        // après avoir parcouru d'autres pages.

void stop()
        // Méthode appelée par le navigateur pour demander la désactivation de l'applet,
        // par exemple lorsque l'utilisateur quitte la page où se trouve l'applet.
 

La classe JApplet (package javax.swing)

Si l'applet contient des composants Swing, il faut étendre la classe JApplet. En effet, les composants Swing à l'intérieur d'une applet ordinaire sont incapables de se repeindre correctement.
 
 

Ecriture d'une applet simple :

//Exemple d'applet très simple 
import java.applet.*; 
import java.awt.*; 

public class helloWord extends Applet { 
    Label  helloLabel = new Label ("Bonjour, vous me voyez ?"); 
    // Méthode appelée par le navigateur lorsque l'applet est chargée 
    public void init (){ 
           setBackground (Color.yellow); 
          add (helloLabel); 
     } 
}

Pour qu'elle puisse être compilée, un fichier applet doit être suffixé par .java. L'applet helloWord sera enregistrée  sous le nom de helloWord.java

 Quelques explications sur le code source :

//Exemple d'applet très simple
La première ligne est un commentaire : tout ce qui est à droite de //, jusqu'à la fin de la ligne n'est pas compilé
import java.applet.*;
import java.awt.*;
Ces deux lignes signifient que l'on va utiliser les librairies standard java.applet et java.awt qui contiennent respectivement les classes pour construire des applets et des interfaces graphiques.
public class helloWord extends Applet {
La classe helloWord hérite des attributs et des méthodes de la classe Applet.
Label  helloLabel = new Label ("Bonjour, vous me voyez ?");
Une étiquette est ajoutée en attribut de la classe, celle-ci contiendra le texte inséré entre les guillements.

public void init (){
 setBackground (Color.yellow);
 add (helloLabel);
}

La méthode init est celle qui est appelée à la création de l'applet. Ici, elle va donner une couleur de fond jaune à l'applet et insérer l'étiquette helloLabel.

Compilation d'une applet :

La compilation est lancée par la commande javac suivie du nom du fichier source :
 
Programme écrit en JAVA : MonProg.java 
Programme compilé : MonProg.class 
cette instruction provoque la compilation du fichier MonProg.java, mais elle ne crée pas de fichier exécutable, mais des fichiers semi-compilés. Elle en crée autant qu'il y a de classes définies dans le fichier source. Les fichiers créés sont caractérisés par le suffixe .class.

Le fichier *.class est destiné à être incorporé dans un document HTML
 

Installation de l'applet dans une page HTML :

Les applets sont appelées à partir d'un source HTML lu à distance par votre navigateur.
 
<HTML> 

<HEAD> 
<TITLE>test 01 de l'applet helloWord</TITLE> 
</HEAD> 

<BODY >
texte 
<APPLET CODE="helloWord.class" WIDTH=150 HEIGHT=100 
ALIGN=left> 
</APPLET> 
texte 
</BODY> 

</HTML> 

Le marqueur HTML <APPLET ...  > </APPLET> donne le nom de l'applet à exécuter.

<APPLET CODE="helloWord.class" WIDTH=150 HEIGHT=100
ALIGN=left>
</APPLET>
Attributs pour le marqueur <APPLET>
 
Attribut Ce qu'il fait
ALT=""  Le texte entre guillemets est ce qui apparaît si le navigateur visualisant la page n'est pas capable de lancer des applets JAVA 
ALIGN=  Contrôle comment l'applet doit s'aligner avec le texte 
HEIGHT=  Contrôle la dimension verticale de l'espace écran réservé à l'applet 
WIDTH= Contrôle la dimension horizontale de l'espace écran réservé à l'applet 
HSPACE= Ajoute de l'espace supplémentaire à la droite ou à la gauche de l'applet, entre l'espace de l'applet et le texte adjoint 
VSPACE= Ajoute de l'espace supplémentaire au-dessus ou en dessous de l'applet, entre l'espace de l'applet et le texte adjoint
Vous pouvez essayer de remplacez dans votre feuille HTML la valeur left de l'attribut ALIGN successivement par les valeurs right, top et bottom en testant son effet sur votre feuille HTML à partir de votre navigateur après chaque modification.
 

Passage de paramètre dans une applet :

import java.applet.*; 
import java.awt.*; 

public class helloParam extends Applet { 

    //attributs de l'applet 
    Label  helloLabel = new Label (); 
    String infoString ="null"; 

    // méthode(s) de l'applet 
    public void init (){ 
         // ligne qui permet de récupérer un paramètre à partir d'une page HTML 
         infoString = getParameter("info"); 
         setBackground (Color.yellow); 
         helloLabel.setText(infoString); 
         add (helloLabel); 
     } 

L'instruction getParameter("NomDuParamètre") permet de récupérer une valeur à partir d'une page HTML utilisant l'applet.
 
<HTML> 

<HEAD> 
<TITLE>test 01 de l'applet helloParam</TITLE> 
</HEAD> 

<BODY BACKGROUND="" BGCOLOR="#ff8080" TEXT="#004000" LINK="#0000ff" VLINK="#800080" ALINK="#ff0000"> 

texte 
<APPLET CODE="helloParam.class" WIDTH=150 HEIGHT=30 
ALIGN=top> 
<PARAM NAME= info VALUE="Bonjour!"> 
</APPLET> 
texte 
</BODY> 

</HTML> 

 Utilisation d'applets :

Sur Internet il existe des applets libres de droit qui sont réutilisables. Pour chaque fichier *.class téléchargeable, il est possible de récupérer un exemple de fichier HTML avec la description des paramètres de l'applet et parfois le source *.java.

Il suffit pour réutiliser une applet dans vos propres document de récupérer le fichier *.class, de créer une page HTML utilisant l'applet en modifiant les paramètres à votre convenance.

Et si vous créez une applet intéressante, n'hésitez pas à la diffuser aussi sur internet pour en faire bénéficier les autres internautres.