• Aucun résultat trouvé

JAV - TD 10 Applets & ant

N/A
N/A
Protected

Academic year: 2022

Partager "JAV - TD 10 Applets & ant"

Copied!
14
0
0

Texte intégral

(1)

JAV - TD 10 Applets & ant

Les applets java

Le packaging d’applications

(2)

Tarak Chaari, Stéphane Frénot, Frédérique Laforest, Frédéric Le-Mouël JAV2

Les applets – Objectifs

• Une applet est une classe compilée héritant de java.applet.Applet.

• Une applet est à la fois un composant graphique (hérite de Panel) et un thread d'exécution

(3)

Les applets – Objectifs

• Elle est diffusée par un serveur web dans une page HTML

• Elle est téléchargée puis exécutée par le browser.

• Elle est soumise au Security Manager du browser

– pas d'accès en lecture ni en écriture sur le disque du browser

– connexion réseau uniquement sur le serveur d'origine – pas de chargement de librairie native

– pas de lancement de processus, ...

(4)

Tarak Chaari, Stéphane Frénot, Frédérique Laforest, Frédéric Le-Mouël JAV4

Les applets – Vie et mort

i n i t

s t a r t

s t o p

d e s t r o y c h a r g e m e n t d e l 'a p p l e t

S o r t i e d e l a p a g e

V i s i t e d e l a p a g e

s u p p r i m e r l a p a g e

(5)

Les applets – Syntaxe

public class BonjourApplet extends Applet { String msg = "bonjour";

public void init() {...}

public void start() {...}

public void paint(java.awt.Graphics g) {g.drawString(msg, 20, 20);}

public void stop() {...}

public void destroy() {...}

}

<HTML>

<BODY>

<APPLET code="BonjourApplet.class"

codebase="http://citi.insa-lyon.fr/~flemouel/applets/"

width=300 height=200>

<PARAM name="message" value="Bonjour">

</applet>

</BODY>

</HTML>

(6)

Tarak Chaari, Stéphane Frénot, Frédérique Laforest, Frédéric Le-Mouël JAV6

Les applets – Démarrage, arrêt

• init : méthode appelée au chargement de l’applet (avant le start)

• start : méthode appelée pour démarrer l’applet

• isActive : l’applet est vivante ?

• stop : méthode appelée pour arrêter l’applet

• destroy : méthode appelée pour détruire l’applet (libération des ressources, etc.) (stop doit toujours être appelée avant)

(7)

Les applets – Exemple

public class BonjourApplet extends Applet { StringBuffer buffer;

public void init() {

buffer = new StringBuffer();

this.addItem("initialisation..."); }

public void start() { this.addItem("démarrage..."); } public void stop() { this.addItem("arrêt..."); }

public void destroy() { this.addItem("déchargement..."); } private void addItem(String newWord) {

buffer.append(newWord); repaint(); } public void paint(Graphics g) {

g.drawRect(0, 0, size().width - 1, size().height - 1);

g.drawString(buffer.toString(), 5, 15); } //

Message

(8)

Tarak Chaari, Stéphane Frénot, Frédérique Laforest, Frédéric Le-Mouël JAV8

Exercice

• Écrire l’applet précédente affichant « Bonjour ! » à l’aide de la fonction drawString de la classe Graphics. Visualisez-là dans une page Web à l’aide d’un navigateur

• Modifier l’applet pour expérimenter d’autres méthodes de la classe Graphics, comme drawLine, drawRect, drawImage, fillRect, etc.

• A l’aide des interfaces MouseListener et MouseMotionListener, écrivez une applet Tableau qui permet de tracer une ligne sur

simple pression du bouton de la souris

(9)

Le packaging d'applications

Le retour du makefile...

(10)

Tarak Chaari, Stéphane Frénot, Frédérique Laforest, Frédéric Le-Mouël JAV10

Objectifs du Makefile

Gérer une chaîne complète de production de logiciels (et plus si affinité)

– Ex :

• Compilation

• Génération de squelettes

• Intégration de code

• Tests

• Packaging

• Mailing

• Déploiement...

– ==> Le pb : chaque tâche ci-dessus repose sur des outils spécifiques.

Il faut des outils pour mettre bout à bout l'exécution de ces outils

Pour réaliser l'ensemble de ces tâches, il existe deux solutions : – Les langages de scripts

– Les outils de gestion de projet comme Makefile ou Ant

(11)

Objectifs du Makefile

• Les objectifs du makefile sont de gérer proprement un ensemble de tâches. Ex en C :

– compilation, linkage, exécution

run: test ./test test: test.o

gcc -o test.o test.c test.o: test.c

gcc -c test.c

• Les tâches déjà réalisées ne sont pas ré-exécutées, seuls les fichiers à regénérer le sont.

– ant est une adaptation du make file au monde java, et aux projets plus « complexes »

(12)

Tarak Chaari, Stéphane Frénot, Frédérique Laforest, Frédéric Le-Mouël JAV12

Ant

• Repose sur un fichier de description de tâches : build.xml

• La commande est

ant

• Il existe toute une collection de tâches standardisées

– java, javac, mail, cc, jar, tar, move, copy, documentation...

• Il est possible de définir de nouvelles tâches

• http://ant.apache.org/manual/

(13)

Ant exemple

<project name="tp1" default=“compile" basedir=".">

<target name="clean">

<delete verbose="false"

includeEmptyDirs="true">

<fileset dir="classes"/>

</delete>

</target>

<target name="compile" depends="init">

<javac srcdir="src"

destdir="classes"

debug="on">

</target>

</project>

• Les commandes possibles pour cet exemple ant

ant clean ant compile

• Les répertoires concernés sont src et classes

Build.xml

(14)

Tarak Chaari, Stéphane Frénot, Frédérique Laforest, Frédéric Le-Mouël JAV14

Exercice

• Réaliser votre projet Division sous ant.

• Votre outil doit vous permettre de :

– Compiler et lancer votre projet

– Créer un jar exécutable de votre projet

• A partir de maintenant tous vos projets de développement sont packagés dans des

scripts ant

Références

Documents relatifs

Actions de solidarité : récupération de bouchons en plastique, de cassettes vidéo ou de DVD originaux de films et dessins animés pour enfants qui seront remis à notre partenaire

Trois études randomisées antérieures avaient rapporté un effet bénéfique de la stimulation cardiaque pour prévenir le risque de rechute chez les patients victimes de syncopes

une diminution de la longueur des deux types de filaments protéiques un glissement relatif des filaments d’actine par rapport aux filaments de

– Modifier la classe TestCircle pour qu’elle crée 3 cercles différents (un par constructeur, donner des valeurs à x,y et r différentes de 0) et affiche

– A chaque pas, on simule le fonctionnement réel (arrivé d’un paquet, génération d’un paquet…).. • Dans le même pas, le simulateur actionne chaque senseur en effectuant :.

Frédéric Le Mouël, Stéphane Frénot, Frédérique Laforest, Tarak Chaari – Dpt TC JAV2.. Les threads

• 15 compressions pour 2 insufflations, à deux secouristes sans matériel. 6.3.2 Le secouriste est seul avec la victime.. a) S’il s’agit d’un adulte : Alerter immédiatement

NB : une réalisation par une Interface est juste aussi, à condition de définir une classe qui l'implémente et qui définit les méthodes comme ici. C'est ce que j'ai fait en classe pour