les applets

21
Les applets

Upload: tyrone-savage

Post on 01-Jan-2016

28 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Les applets

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.

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.