Transcript APPLETS
APPLETS
Applets : généralités
• Applet : application s'exécutant dans une page HTML
• Le ByteCode (fichiers .class) est téléchargé depuis un serveur.
• L'exécution est effectuée par la machine virtuelle du navigateur
(plug-in) ou par l'utilitaire appletviewer du JDK.
Applets : restrictions
Droits d'un programme Java s'exécutant dans un navigateur Web ou
dans appletviewer
Nav.
appletviewer
•
•
•
•
•
•
•
•
Lire les fichiers locaux
Écrire dans les fichiers locaux
Lire des informations sur les fichiers
Supprimer un fichier
Lancer un autre programme
Lire la propriété user.name
Sortir de l'applet par exit()
Créer une fenêtre popup
Non
Non
Non
Non
Non
Non
Non
Oui ( message)
Oui
Oui
Oui
Non
Oui
Oui
Oui
Oui
Insertion dans une page Html
• Balise APPLET
<html>
<body>
<APPLET CODE='HelloWorld.class' WIDTH=100 HEIGHT=100>
</APPLET>
</body>
</html>
Balise OBJECT
<html>
<body>
<OBJECT codetype="application/octet-stream"
classid="java:HelloWorld.class"
width=600
height=400 >
<param name=background value="008080">
<param name=foreground value="FFFFFF">
</OBJECT>
</body>
</html>
35 attributs. Voir documentation...
Passer des informations à une applet
• Balise PARAM
</html>
</body>
<OBJECT
CLASSID="HelloWorld.class"
WIDTH=200 HEIGHT=100
PARAM NAME=font VALUE="Helvetica"
PARAM NAME=size VALUE="48">
</OBJECT>
</body>
</html>
Les paramètres sont toujours passés sous forme de chaînes.
Un transtypage peut être nécessaire dans le code de l'applet :
public class UneApplet extends JApplet
{
public void init()
{
String fontName = getParameter("font");
int fontSize =
Integer.parseInt(getParameter("size"));
. . .
Gérer le chargement de l'applet
<OBJECT
CLASSID="HelloWorld.class"
WIDTH=100 HEIGHT=100
CODEBASE="/classes/"
<!-- Ligne affichée pendant le chargement de
l'applet -->
STANDBY = "Merci de patienter…"
>
<!-- Le code suivant est exécuté si l'applet n'a pas
été lancée correctement, par ex. si le navigateur
est incompatible avec Java -->
Échec du chargement de l'applet
</OBJECT>
Fichiers Jar
Les différents fichiers .class, .gif, etc… constituant l'applet peuvent être
réunis et compressés dans un seul fichier .jar (Java Archive).
•
•
Raccourcir la durée du chargement initial au démarrage de l'applet
Supprimer le chargement d'autres fichiers pendant l'exécution.
jar.exe fait partie du jdk.
Créer un fichier jar :
jar cf FileName.jar Fichier1 Fichier2 . . .
Le fichier HTML fera référence au fichier .jar
<OBJECT CLASSID="HelloWorld.class"
ARCHIVE = "Filename.jar"
WIDTH=200 HEIGHT=100
PARAM NAME=font VALUE="Helvetica"
PARAM NAME=size VALUE="48">
</OBJECT>
Structure d'une applet
public class HelloWorld extends java.applet.Applet
{
public void init() // Appelée 1 fois. Similaire à un
constructeur
{
}
public void start() // Appelée à chaque chargement de la
page
{
}
public void stop() // Appelée lorsque l'utilisateur
quitte
{
// la page
}
public void destroy() // Appelée à l'arrêt du navigateur
{
}
}
ou
public class HelloWorld extends JApplet {…} // Java 2
Application -> applet
•
Créer une page HTML pour charger l'applet
•
Supprimer la méthode main() de l'application
•
Remplacer la classe JFrame par la classe JApplet. Cette classe doit être
publique.
•
Supprimer l'appel à setSize() : la taille de l'applet est donnée dans la
page HTML par les paramètres WIDTH et HEIGHT
•
Supprimer l'appel à WindowListener. Une applet ne peut pas être
explicitement fermée.
•
Recopier le code placé dans le constructeur de l'application vers la méthode
init() de l'applet, si ce code contient des appels à getParameter().