À côté des applications autonomes qui peuvent être
lancées au travers d'une JVM par la commande
java,
il est possible de développer des applications qui seront exécutées
sous le contrôle d'un navigateur Internet (par exemple netscape ou explorer).
Les applets sont référencées dans les pages HTML sous la forme
<applet code="nonDeLApplet.class" width="xxx" height="xxx" >
</applet>
|
code,
width,
et height
de la balise
applet
sont obligatoires.
On peut ajouter d'autres attributs à cette balise :
codebase :
utilisé pour construire l'URL du fichier contenant l'applet (intéressant
dans le cas où le code est dans un répertoire différent de
celui contenant le fichier HTML) ;archive :
permet de désigner un fichier JAR (version compressée)
contenant la définiton des classes utilisées par l'applet ;align :
permet de positionner l'applet par rapport à l'élément suivant la
fermeture de la balise
( c'est-à-dire après </applet>).
Des valeurs possibles en sont "left" et "right") ;alt :
définit un texte qui sera affiché si l'applet ne peut
pas être chargée.
La balise param
permet par ailleurs de définir un paramètre dont la valeur sera
récupérable dans l'applet par la méthode
getParameter.
Cette balise contient les attributs
name et
value.
Applet
une applet est une instance d'une sous-classe publique
de la classe Applet.
Cette classe est elle-même une sous-classe de la classe
Panel
qui est un conteneur graphique : cela a pour conséquence
immédiate qu'une applet dispose d'une interface graphique.
Contrairement à ce qui se passe pour une application
autonome, la définition d'une applet ne contient
pas de méthode
main.
Lorsqu'une demande d'exécution d'une applet est formulée,
la classe de l'applet est automatiquement instanciée avec le
constructeur par défaut et la
méthode init
de cette instance est invoquée. Cette méthode signale que l'applet
a été chargée. Elle peut être surchargée pour réaliser des
initialisations qui ne l'auraient pas été dans le constructeur ou
créer de nouvelles threads.
Après invocation de la méthode
init,
la méthode start
est invoquée à son tour par le navigateur. Cela a pour effet de rendre
l'application active.
Toute modification de l'applet en tant que contexte graphique entraîne
l'invocation de la méthode
paint(Graphics gr)
qui assure sa réactualisation. Cette méthode est typiquement
surchargée lors de la définition d'une applet.
En tant que sous-classe de la classe
Panel,
la classe Applet
en hérite de son interface (ainsi que de celles de
Component et de
Container).
La classe Applet
définit par ailleurs une interface de l'application avec son environnement.
Parmi les méthodes les plus utiles et qui peuvent être surchargées
(beaucoup ne font rien par défaut) citons :
void destroy :
demande de libération de toutes les ressources détenues par l'applet
(sans effet par défaut) ;String getParameter(String name) :
renvoie la valeur du paramètre de nom donné dans le
fichier HTML (balise param). La fonction ne peut être appelée
qu'après instanciation (c'est-à-dire pas dans le constructeur) ;void resize(int width, int height) ou
void resize(Dimension d) :
redimensionne l'applet ;stop :
suspension de l'applet.
--> cat UneApplet.java
import java.awt.*;
import java.applet.*;
public class UneApplet extends Applet{
String chaine1;
String chaine2;
public UneApplet( ){
chaine1 = "Bonjour";
}
public void start(){
String fonte = getParameter("fonte");
setFont(new Font(fonte, Font.BOLD, 16));
chaine2 = "EN AVANT ...";
}
public void paint(Graphics g){
g.drawString(chaine1 , 50, 100);
g.drawString(chaine2, 150, 200);
g.drawString("Salut !!!", 250, 300);
}
}
--> cat UneApplet.html
<html>
<body>
<applet code="UneApplet.class" width="400" height="400">
<param name="fonte" value="Helvetica">
</applet>
</body>
</html>
|