Page 1 Les applets Jacques Lonchamp
Page 2 Présentation Une applet est téléchargée à partir dune machine distante qui fournit le code. Ce chargement est provoqué par lanalyse dune page HTML. Lapplet sexécute dans la machine virtuelle du navigateur web. Une applet est définie par une classe qui dérive de Applet (AWT) ou JApplet (Swing). Cest un conteneur du plus haut niveau comme JFrame. Au lancement dune applet on dispose automatiquement dune fenêtre graphique. Lapplet na pas de fonction main mais vit selon un certain cycle. Les méthodes qui rythment ce cycle sont : –init () : exécutée quand la page html est chargée la 1ère fois, –start () : après init et chaque fois que lon revient sur la page, –stop () : quand on quitte la page html (interrompt les méthodes lancées dans start), –destroy () : quand lapplet est terminée (libère toutes les ressources).
Page 3 La page HTML de lancement peut avoir la forme suivante (nous ne détaillons pas toutes les règles du HTML) : <APPLET CODE="HelloWorldApplet.class" WIDTH=500 HEIGHT=300 > Le code est cherché à ladresse URL à partir de laquelle la page a été chargée. La taille de la fenêtre est fixée par WIDTH et HEIGHT. PARAM permet de passer des paramètres chaîne de caractères à lapplet. La page HTML
Page 4 Exemple de code Java minimum import javax.swing.*; Import java.awt.*; public class HelloWorldApplet extends JApplet { Font f = new Font("Serif", Font.BOLD, 36); public void paint (Graphics g) { g.setFont(f); g.setColor(Color.red); g.drawString(getParameter("chaine"),10,30); } Affiche le paramètre chaine, cest-à-dire Bonjour le monde dans une certaine fonte et à un certain emplacement dans lapplet. En plus de la méthode paint, la méthode init() est très importante. Cest là que sont créés tous les éléments graphiques (menus, boutons, panneaux…) et les listeners correspondants. Code de lapplet
Page 5 Exemple avec méthode init() : import javax.swing.*; import java.awt.*; import javax.swing.event.*; import java.awt.event.*; public class RJApplet extends JApplet implements ActionListener { private JPanel panCol, panCom; private JButton rouge, jaune; public void init() { panCol = new JPanel(); panCom = new JPanel(); getContentPane().add(panCol, "Center"); getContentPane().add(panCom, "South"); rouge = new JButton("rouge"); jaune = new JButton("jaune"); panCom.add(rouge); panCom.add(jaune); rouge.addActionListener(this); jaune.addActionListener(this); } public void actionPerformed(ActionEvent e) { if(e.getSource()==rouge) panCol.setBackground(Color.red); if(e.getSource()==jaune) panCol.setBackground(Color.yellow); }
Page 6 <APPLET CODE="RJApplet.class" WIDTH=250 HEIGHT=100 >
Page 7 Une applet ne peut pas (SecurityException) : –accéder aux fichiers locaux. –effectuer de connexions réseaux sauf sur lhôte dont elle provient. –lancer de programme exécutable local –obtenir des informations sur le système local. Cest important quand lapplet provient dun site distant. Ces restrictions peuvent être levées dans le cas dutilisation en intranet par un certificat de sécurité (qui prouve que lapplet est dorigine connue) ou via le gestionnaire de sécurité. Applet et sécurité