les applets
DESCRIPTION
Les applets. 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 - PowerPoint PPT PresentationTRANSCRIPT
2
Plan
Architecture mise en œuvre (matérielle et logicielle)
Implémentation d’une appletTransformation d’une application graphique
en une appletLe chargement des appletsLes fichiers JARLe cycle de vie d’une appletPassage de paramètres à une appletRestrictions imposées à une applet
3
Poste ClientServeur WEB
Héberge :• Une Page HTML• Une Applet
Possède :• Un navigateur WEBOU• Le programme exécutableappletviewer (fourni avec le JDK)
Protocole HTTP
Architecture matérielle et logicielle mise en œuvre
4
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);
}
}
5
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 »).
6
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 (3/4)
7
Implémentation d’une applet (4/4)
L’arbre d’héritage de cette application est : Container
(from awt)
<<Abstrait>>
Panel(from awt)
Applet(from applet)
JApplet(from swing)
JPanel(from swing)
JComponent(from swing)
Applet1
Panneau
8
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
>
9
Transformation d’une application graphique en une applet (1/2)
Pour convertir une application graphique en une applet, il faut :
1 Supprimer la méthode main de l’application. Le premier objet devant être créé est spécifiée dans la page HTML.
2 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.
10
Transformation d’une application graphique en une applet (2/2)
3 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>.
4 Il faut aussi supprimer l’appel à addWindowListener, car une applet ne peut être fermée : elle s’achève quand on sort du navigateur.
5 Créer une page HTML avec la balise appropriée au chargement du code de l’applet.
11
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.
12
Correction exercice
Fichier source AppletCalculatrice.java
Fichier source AppletCalculatrice.html
13
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>
14
Le chargement des applets (2/2)Navigateur
WEBServeur HTTP
Connexion
Chargement de la classe AppletCalculatrice
Déconnexion
Résolution des références
Connexion
Chargement de la classe PanneauCalculatrice
Déconnexion
Recherche des références faites aux autres classes dans la classe AppletCalculatrice
Résolution des références
Recherche des références faites aux autres classes dans la classe PanneauCalculatrice
15
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’archivejar cvf AppletCalculatrice.jar
AppletCalculatrice.class PanneauCalculatrice.class
ou jar cvf AppletCalculatrice.jar *.class
16
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.
17
Le cycle de vie d’une applet
Nouveau
Appletstoppée Applet
active
destroy()
stop( )
start( )
Mort
init( ) Initialisation de
l’applet
start( )
18
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>
19
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) ;
}
}
20
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.
21
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.