90 likes | 250 Views
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.
E N D
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 Non Oui • Écrire dans les fichiers locaux Non Oui • Lire des informations sur les fichiers Non Oui • Supprimer un fichier Non Non • Lancer un autre programme Non Oui • Lire la propriété user.name Non Oui • Sortir de l'applet par exit() Non Oui • Créer une fenêtre popup Oui ( message) 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 Pas de méthode main().
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().