210 likes | 297 Vues
Learn how to implement Java applets, transform graphic applications, load applets, use JAR files, pass parameters, and navigate restrictions effectively. Follow a comprehensive architecture guide and code examples.
E N D
Plan • Architecture mise en œuvre (matérielle et logicielle) • Implémentation d’une applet • Transformation d’une application graphique en une applet • Le chargement des applets • Les fichiers JAR • Le cycle de vie d’une applet • Passage de paramètres à une applet • Restrictions imposées à une applet
Implémentation d’une applet (1/4) • Il faut tout d’abord écrire un programme Java. import java.awt.*; import javax.swing.*; class Panneau extends JPanel { public void paintComponent(Graphics g) { super.paintComponent(g); g.drawString("Bienvenue dans mon applet !", 75, 100); } }
Implémentation d’une applet (2/4) public class Applet1 extends JApplet { public void init() { // Le gestionnaire mise en forme par défaut est de type // BorderLayout. Container contentPane = getContentPane(); contentPane.add(new Panneau()); } } • Ce programme doit être compilé en un fichier de classes (fichier(s) « .class »).
Implémentation d’une applet (3/4) • Enfin, écrire un fichier HTML indiquant le fichier à charger <HTML> Début fichier HTML <BODY> Début corps <APPLET Commande applet CODE="Applet1.class" Nom du fichier contenant les bytecodes de l’applet WIDTH=300 Largeur initiale de la fenêtre consacrée à l’applet HEIGHT=300 Hauteur initiale de la fenêtre consacrée à l’applet > </APPLET> Fin commande applet </BODY> Fin corps </HTML> Fin fichier HTML
Implémentation d’une applet (4/4) • L’arbre d’héritage de cette application est :
Remarques • La gestion événementielle dans une applet est identique à celle vue lors de la programmation graphique. • Une applet peut être téléchargée à partir d’un répertoire autre que le répertoire de base. Par exemple : < APPLET CODE="Applet1.class" CODEBASE="Rep" WIDTH=300 HEIGHT=300 >
Transformation d’une application graphique en une applet (1/2) • Pour convertir une application graphique en une applet, il faut : • Supprimer la méthode main de l’application. Le premier objet devant être créé est spécifiée dans la page HTML. • Remplacer la classe JFrame par une classe JApplet . Rendre cette classe public, c’est indispensable au chargement de l’applet. Généralement, cette classe ne sera pas dotée d’un constructeur : les activités réalisées dans le constructeur de la fenêtre principale de l’application seront reportées dans la méthode init de l’applet.
Transformation d’une application graphique en une applet (2/2) • Eliminer l’appel à setSize. Pour les applets, le dimensionnement dépend des paramètres WIDTH et HEIGHT du fichier HTML. De même, si l’application effectue un appel à setTitle, il faut le supprimer. En effet, les applets n’ont pas de barre de titre, mais rien n’empêche de donner un titre à la page Web en tant que telle via la balise HTML <TITLE>. • Il faut aussi supprimer l’appel à addWindowListener, car une applet ne peut être fermée : elle s’achève quand on sort du navigateur. • Créer une page HTML avec la balise appropriée au chargement du code de l’applet.
Exercice Transformer le programme Java “ Calculatrice ” afin qu’il devienne une applet. Puis écrire le fichier HTML qui permettra le chargement de l’applet précédente dans le navigateur du poste client.
Correction exercice • Fichier source AppletCalculatrice.java • Fichier source AppletCalculatrice.html
Le chargement des applets (1/2) Que se passe-t-il lorsque le navigateur rencontre dans le fichier HTML précédent la ligne suivante ? <APPLET CODE="AppletCalculatrice.class" WIDTH=200 HEIGHT=200>
Les fichiers JAR(Java Archive 1/2) • Ils permettent de regrouper dans un seul fichier tous les éléments nécessaires au fonctionnement de l’applet (fichiers de classes, images, audio) => Diminution du nombre de connexions. • Pour créer un fichier d’archive jar cvf AppletCalculatrice.jar AppletCalculatrice.class PanneauCalculatrice.class ou jar cvf AppletCalculatrice.jar *.class
Les fichiers JAR(Java Archive 2/2) • Pour utiliser une archive JAR dans un fichier HTML. <APPLET CODE="AppletCalculatrice.class" Nom de l’applet ARCHIVE="AppletCalculatrice.jar" Fichier JAR WIDTH=180 HEIGHT=180> </APPLET> • Le fichier AppletCalculatrice.jar est téléchargé depuis le serveur WEB avant le chargement de l’applet AppletCalculatrice. • Chaque fois, qu’un fichier de classes est requis, le navigateur le recherche dans le fichier JAR. S ’il n ’est pas présent alors il est recherché sur le serveur WEB.
Le cycle de vie d’une applet Initialisation de l’applet Nouveau init( ) start( ) Applet stoppée Applet active stop( ) destroy() start( ) Mort
Passage de paramètres à une applet (1/2) • Une applet peut recevoir des paramètres en provenance du fichier HTML. Par exemple : <HTML> <BODY> <APPLET CODE = "Infos.class" WIDTH = 250 HEIGHT = 100 > <PARAM NAME = "Texte", VALUE = "Un message"> <PARAM NAME = "Nombre", VALUE = "2000"> </APPLET> </BODY> </HTML>
Passage de paramètres à une applet (2/2) import javax.swing.* ; public class Infos extends JApplet { public void init () { String nomTexte = getParameter ("Texte") ; String nomNombre = getParameter ("Nombre") ; int nombre ; System.out.println ("Texte = " + nomTexte) ; System.out.println ("Nombre = " + nomNombre) ; nombre = Integer.parseInt(nomNombre) ; } }
Restrictions imposées aux applets (1/2) • La machine virtuelle Java interdit à une applet de : • Lancer un programme exécutable localement. • Lire ou d’écrire dans le système de fichiers local. • Communiquer avec un hôte différent du serveur d’où elle provient. • Obtenir des informations relatives au système local à l’exception d’informations banales telles que : version de Java utilisée, les caractères de fin de ligne, etc.
Restrictions imposées aux applets (2/2) • Ces restrictions pouvant être trop fortes dans certains cas, il est possible de créer des applets certifiés. • L’applet transporte alors un “ certificat sécurisé ” qui donne l’origine de l’applet. Son origine étant garantie, il est alors possible d’attribuer à l’applet des droits supplémentaires.