M2 ISF. Introduction à la P.O.O et langage java (fascicule 2)



Documents pareils
[SIMULATEUR DE CREDIT IMMOBILIER]

Gestion des Prospects : Adresses à exporter

Utiliser les activités de cours de Moodle : le Questionnaire

(les caractères apparaissent en vidéo inversé : blanc sur fond

Basculer entre un réseau domestique et celui de votre lieu de travail

GUIDE INSTALLATION IAS

Nouveautés apportées à l assessment-tool

Nous proposons 3 syntaxes au choix :

Vente de Capacités de Stockage de gaz du 13 mai 2015

Manuel d utilisation de Nomad Trading

Service de mobilité interbancaire - Règlement

Service de mobilité interbancaire - Règlement

2. Trouvez la version du firmware que vous souhaitez télécharger dans la rubrique Boot From CD, correspondant à votre modèle de SSD.

LE RVER EN UN COUP D ŒIL

Gestionnaire de Prêts Margill 4.1

Procédure d installation

ENREGISTEUR NUMERIQUE USB Guide utilisateur

Manuel d'utilisation: Gestion commerciale - CRM

Directory List & Print (Pro) by Infonautics GmbH, Switzerland

Article I - Objet. Article II - Conditions d'utilisation de la eboutique

ASSODESK.COM Aide en ligne

Siège social : 12, rue Massue Vincennes cedex

Catalogue de formation bureautique

République Française Services du Premier Ministre

Financement des investissements Page 1 sur 6

Promotion Le défi des étoiles Aéroplan Q1. Qu est-ce que la promotion Le défi des étoiles Aéroplan?

Les stratégies de Backup dans WSS V3

Développement d applications mobiles natives avec LongRange de LANSA

Processus des services

Contenu de version

NOTICE POUR L IMPORT DU FICHIER «IACA» DANS CORRELYCE

Logiciel de gestion des inscriptions en CPGE

Charte de la gestion cookies groupe PVCP 25/09/2014

CONDITIONS GENERALES DE VENTE

BOURSE EXPLO RA SUP (Région Rhône-Alpes) Toutes destinations-séjour académique et stage

Cet article décrit les spécifications d'installation et de configuration et explique étape par étape comment

Cible de Sécurité - Blancco DataCleaner+ v4.8

REGLEMENT COMPLET «3D World Koksijde»

Règlement du concours de POCKET FILM organisé par le Département de la Haute-Vienne

votre lettre du vos références nos références votre correspondant date

PROPOSITION DE CREATION DE SITE INTERNET

Extensions d inventaire

CYBERLEARN COURS MOODLE. SUPPORT DE TRAVAIL Pour professeur-es et assistant-es d'enseignement

GUIDE DE L UTILISATEUR

RÈGLEMENT DU CONCOURS

FINAL CUT PRO 7 / DIDACTICIEL / OUVERTURE DU PROGRAMME / REGLAGES / IMPORTATION / EXPORTATION / RACCOURCIS

LE TABLEAU DE BORD REMONTEE DES COMPTES. Outils de gestion prévisionnelle, d'analyse financière et du contrôle de gestion. TABLE DES MATIERES

KDJHU HQHUJ\ manuel de l'xwlolvdteur tebis

Fiche de projet pour les institutions publiques

esil PROJET DE MODELISATION ORIENTEE OBJET INFORMATIQUE - 3 ANNEE

Les dossiers de FO RÉSIDENCE PRINCIPALE. Prêts soumis à conditions de revenus : o Critères d attribution :

Çi-dessous le livret du module de réservation de sièges. Via Thomascookagent.be (pour les agences)

Kluwer ERP Dashboard - VERO.

Protection Complémentaire Santé

CONTEXTE DRSI Paris12 - Site de Créteil

- culture - tourisme - sport - actions sociales

REGLEMENT COMPLET Tentez de gagner une tablette tactile

Serveur de FAX Réseau - Hylafax

Il existe un format informatique appelé.csv (Comma-Separated Values, des valeurs séparées par des virgules).

Note de cadrage de la version Apogée 4.10

GUIDE DU PROGRAMME DE VÉRIFICATION DE LA CONFORMITÉ ET DE L UTILISATION DES DONNÉES DU FICHIER CENTRAL DES SINISTRES AUTOMOBILES

LIVRE BLANC SEM. Google AdWords Le guide ultime du SEM pour votre Boutique en ligne

Contrat de service et de licence de sauvegarde en ligne Lenovo version entreprise AVIS IMPORTANT

Besoins informatiques Pricare et autres informations utiles pour le gestionnaire de réseau

DOSSIER DE CANDIDATURE. Master Transport, Logistique Et Commerce International

Guide de l utilisateur

Politique de sécurité de l information

DOSSIER DE CANDIDATURE. Programme Executive MBA

Impôt des personnes physiques - Habitation propre et avantages fiscaux avant 2015

DM/Administrator fonctionne sans agents d administration spécifiques sur les contrôleurs de domaines.

Guide de l'utilisateur d'avigilon Control Center Client

Proposition de Veille Internet Campagnes Electorales 2012

Guide SEPA Client EDI «Votre guide pour préparer vos flux à l Europe des Moyens de Paiement»

A toutes les Directrices et à tous les Directeurs des établissements scolaires de l enseignement secondaire et secondaire technique

PROCESSUS DE CERTIFICATION DES MONITEURS JE NAGE INFORMATIONS POUR LES MAITRE ÉVALUATEURS

Meilleures pratiques en matière d'indexation de contenu. Mise à niveau à partir de versions antérieures à la version 6.5

livraisons en centrale

Préparation de votre livre pour Kindle

Résumé du module 6 : Coût et structure du capital

ÉTAPES CLÉS DE LA RÉPONSE AUX VIOLATIONS DU RESPECT DE LA

Pour répondre au besoin de sécurité juridique et de prévisibilité, la Loi type devrait traiter des questions suivantes:

FORMATION SUR «CLOUD COMPUTING : CONCEPTS, TECHNOLOGIES ET APPROCHES DE MIGRATION»

- Le service aux tables. - Le service rapide & commande pour emporter. - Le service à l auto. - La livraison. o Voir le feuillet Livraison.

Locallife Leader de l édition d annuaires locaux en ligne, Présent en France depuis octobre 2008

Annexe 2 Annexe technique de la convention individuelle d habilitation «professionnel de l automobile»

Intégration «SugarCRM Asterisk» Ajouter la Téléphonie à votre CRM

DIPLOME NATIONAL de MASTER

a) Financement par des tiers : emprunts, crédits bancaires, leasing, crédit spontané (lors d un achat à crédit) ;

Restitution. Enquête FNOGEC auprès des principaux éditeurs de logiciels. Mise en conformité aux normes SEPA

OUI OUI OUI. Attention : Un maximum de 2 primes B de type différents (excepté B8) peuvent être demandées pour un même bâtiment par année civile.

Règlement de consultation

FIN-INTER-04 LA GESTION DES RISQUES INTERNATIONAUX

LOGICIELS ET BASES DE DONNÉES PROTECTION ET VALORISATION

Ville de Pierrefitte-sur-Seine Centre Technique Municipal

Alcatel OmniPCX Office

«Enrichir l Organisation par les Hommes» CYCLE «LE MANAGEMENT DE PROJET ; SAVOIRS FAIRE ET SAVOIR ETRE»

Développement Durable et Énergies Renouvelables

Transcription:

M2 ISF Intrductin à la P.O.O et langage java (fascicule 2) O. Auzende 2012-2013 1

Le paquetage graphique java.awt... 3 Principe de cnstructin d une fenêtre graphique... 3 Exemple de cnstructin d une fenêtre graphique... 4 La gestin des événements... 6 Principe de la gestin des événements... 6 Mise en œuvre en java... 6 Prgrammatin... 7 Exercice... 8 Les cnversins et les calculs... 10 Cnversin d une chaîne en nmbre... 10 Cnversins d un nmbre en chaîne... 10 Exercice... 10 Applicatin financière (partie 1)... 11 Les applets Java... 12 Qu est-ce qu une applet?... 12 Insertin d une applet dans une page HTML... 13 Méthdes d une applet... 13 Exécutin d une applet... 13 Transfrmatin d une applicatin en applet... 13 Les paramètres d une applet... 14 Applicatin financière (partie 2)... 14 2

Prgrammatin Orientée Objet et langage java Le paquetage graphique java.awt Le paquetage java.awt furnit tutes les classes permettant de bâtir des fenêtres graphiques. La classe Cmpnent est à l rigine de tus les cmpsants graphiques. En italiques, les classes abstraites (qui n autrisent pas la créatin d bjets). Cmpnent est abstraite ; sn rôle est de prpser des méthdes qui sernt héritées par tutes les sus-classes. Dans la parable, ce qui est extérieur au paquetage java.awt, mais dérive d une classe de java.awt. En flèches pintillées, les implémentatins d interfaces. Buttn Canvas Checkbx Chice Panel Applet Cmpnent Cntainer Label List Windw Dialg Frame FileDialg Scrllbar TextCmpnent TextArea TextField MenuCmpnent MenuBar MenuItem BrderLayut CardLayut FlwLayut GridBagCnstraints GridBagLayut GridLayut LayutManager Principe de cnstructin d une fenêtre graphique Les cmpsants (textes, butns, cases à ccher, etc) snt insérés dans un bjet dérivant de Cntainer : Les bjets de type Panel snt des znes nn délimitées, permettant de ranger des cmpsants. Les bjets de type Windw snt des fenêtres standard ; il y a deux sus-classes : Frame : les bjets de ce type snt des fenêtres avec barre de titre et scrllbar Dialg : les bjets de ce type snt des fenêtres de dialgue avec l utilisateur Un LayutManager (gestinnaire de placement) définit cmment snt placés les bjets. C est une interface qu implémentent plusieurs classes, dnt : BrderLayut qui répartit les bjets au Nrd, Sud, Est, Ouest et Centre (c est l ptin par défaut pur un Frame) FlwLayut qui les répartit de gauche à drite puis passe à la ligne suivante (c est l ptin par défaut pur un Panel) GridLayut qui les répartit dans un tableau dnt tutes les cases nt la même taille. 3

Tris exemples imprt java.awt.* ; class Appli1 { public static vid main(string arg[]) { Frame w = new Frame("Exemple") ; w.add("nrth", new Label("Un")) ; w.add("center", new Label("Deux")) ; w.add("suth", new Label("Tris")) ; w.shw() ; w.pack() ; imprt java.awt.* ; class Appli2 { public static vid main(string arg[]) { Frame w = new Frame("Exemple") ; w.setlayut(new FlwLayut()) ; w.add(new Label("Un")) ; w.add(new Label("Deux")) ; w.add( new Label("Tris")) ; w.shw() ; w.pack() ; imprt java.awt.* ; class Appli3 { public static vid main(string arg[]) { Frame w = new Frame("Exemple") ; w.setlayut(new GridLayut(2,2)) ; w.add(new Label("Un")) ; w.add(new Label("Deux")) ; w.add( new Label("Tris")) ; w.add( new Label("Quatre")) ; w.shw() ; w.pack() ; BrderLayut par défaut : FlwLayut chisi : GridLayut chisi : Exemple de cnstructin d une fenêtre graphique Schéma : 4

Le fichier UtilFenetre.java ci-dessus cmprte deux classes : la classe Fenetre cnstruisant la fenêtre la classe publique UtilFenetre cnstituant le prgramme principal imprt java.awt.* ; class Fenetre extends Frame { prtected Panel p1, p2, p3, p31, p32 ; prtected TextArea txt ; prtected Buttn butn1, butn2, butn3 ; prtected CheckbxGrup cbg ; prtected Checkbx chb1, chb2, chb3 ; prtected List selectin1, selectin2 ; Fenetre() { setlayut(new FlwLayut()) ; // cnstructin du Panel p1 p1 = new Panel() ; p1.setlayut(new GridLayut(4,1)) ; p1.add(new Label("Jur")) ; selectin1 = new List(3) ; selectin1.additem("lundi") ; selectin1.additem("mardi") ; selectin1.additem("mercredi") ; selectin1.additem("jeudi") ; selectin1.additem("vendredi") ; selectin1.additem("samedi") ; selectin1.additem("dimanche") ; p1.add(selectin1) ; p1.add(new Label("Hraire")) ; selectin2 = new List(3) ; selectin2.additem("9 h - 12 h") ; selectin2.additem("12 h - 15 h") ; selectin2.additem("15 h - 18 h") ; selectin2.additem("18 h - 21 h") ; p1.add(selectin2) ; add(p1) ; // cnstructin du Panel p2 p2 = new Panel() ; p2.setlayut(new GridLayut(4,1)) ; p2.add(new Label("Lcalisatin")) ; cbg = new CheckbxGrup(); chb1 = new Checkbx("Paris", cbg, true); p2.add(chb1) ; chb2 = new Checkbx("Lyn", cbg, false); p2.add(chb2) ; chb3 = new Checkbx("Marseille", cbg, false); p2.add(chb3) ; add(p2) ; // cnstructin du Panel p3 p3 = new Panel() ; p3.setlayut(new BrderLayut()) ; p31 = new Panel(); butn1 = new Buttn("Valider") ; p31.add(butn1) ; butn2 = new Buttn("Désélectinner") ; p31.add(butn2) ; p3.add("nrth", p31) ; txt = new TextArea(5,30) ; p3.add("center",txt) ; p32 = new Panel() ; butn3 = new Buttn("Quitter") ; p32.add(butn3) ; p3.add("suth", p32) ; add(p3) ; // fin du cnstructeur // fin de la classe Fenetre public class UtilFenetre { public static vid main(string args[]) { Fenetre f = new Fenetre() ; f.pack() ; f.shw() ; Pur le mment aucun événement n est pris en cmpte sur cette fenêtre // classe utilisateur 5

La gestin des événements Principe de la gestin des événements La fenêtre graphique délègue la gestin des événements à d autres classes : c est le mdèle MVC (Méthde - Vue - Cntrôleur) Fenêtre = vue (instance d une classe) Prise de décisin = cntrôleur (instance d une autre classe) Actin = méthde (instance d une trisième classe) Mise en œuvre en java On attache un Listener (surveillant) aux bjets graphiques que l n suhaite surveiller (Buttn, Windw, etc.). Il existe différents Listeners dépendant du type d bjet à surveiller, mais tus snt des instances d interfaces. On a dnc besin d une classe implémentant les interfaces nécessaires. On appellera cette classe la classe Adaptateur. Un bjet de la classe Adaptateur, étant de fait devenu un listener, sera alrs autmatiquement averti des événements (event) qui se prduisent sur les bjets graphiques surveillés. Il décidera alrs des actins à entreprendre en fnctin de la demande de l utilisateur, et dnnera l rdre à un exécuteur de faire ces actins. L exécuteur sera un bjet d une classe que l n appellera la classe Delegue ; il exécutera les actins demandées par l bjet Adaptateur et interviendra sur la vue pur en mdifier l apparence. Illustratin par deux exemples Clic sur un butn cntenu dans la fenêtre Clic sur le butn de fermeture de la fenêtre Résumé La VUE est la fenêtre graphique. C est une instance d une classe graphique. Le CONTROLEUR est une instance d une classe implémentant les Listeners nécessaires ; n appellera cette classe la classe Adaptateur car elle décide cmment «adapter» la fenêtre aux actins demandées par l utilisateur. La METHODE est une instance d une classe cntenant les méthdes à effectuer ; n appellera cette classe la classe Delegue car le CONTROLEUR «délègue» à la METHODE la respnsabilité des actins à entreprendre sur la fenêtre. 6

Prgrammatin Etape 1. Dans le cnstructeur de la fenêtre, n déclare un attribut de nm delegue de la classe Delegue prtected Delegue delegue ; puis n demande à la classe Delegue la créatin d un bjet Delegue par appel au cnstructeur en lui envyant l adresse de la fenêtre : delegue = new Delegue(this) ; L adresse du délégué ainsi créé est dnc stckée dans l attribut delegue tandis que le délégué stcke dans sn attribut fen l adresse de la fenêtre pur puvir ultérieurement ultérieurement agir sur elle : Analgie avec le currier : Nus écrivns à un destinataire que nus venns de décuvrir (à une adresse que nus gardns en mémire) et nus lui envyns ntre prpre adresse (this) pur qu il puisse lui-même la stcker et nus répndre plus tard. Etape 2. On définit une classe Adaptateur qui écute les événements et décide des actins à faire accmplir par le délégué. Pur cela, la classe Adaptateur implémente un u plusieurs Listeners seln les bjets à surveiller. Exemple : pur surveiller les éléments sur un butn et sur une fenêtre, il faut écrire : class Adaptateur implements WindwListener, ActinListener {... et définir dans la classe Adaptateur les méthdes des interfaces WindwListener (7) et ActinListener (1). Etape 3. On déclare dans le cnstructeur de la fenêtre un attribut appelé adapt de la classe Adaptateur : prtected Adaptateur adapt ; puis n demande au cnstructeur de la classe Adaptateur de créer un bjet de la classe Adaptateur en lui envyant l adresse du délégué, puisque c est au délégué que l adaptateur s adressera : adapt = new Adaptateur(delegue) ; 7

Penser encre à l analgie avec le currier : nus écrivns à un secnd destinataire (l Adaptateur adapt), mais nus lui demandns de répndre ultérieurement au premier destinataire (le delegue), dnt il n a pas a priri l adresse. Il faut dnc lui passer cette adresse, pur qu il puisse la stcker. La fenêtre stcke l adresse de l adaptateur dans l attribut adapt. L adaptateur stcke l adresse du délégué dans un attribut delegue : Etape 4. Dans le cnstructeur de la fenêtre, n enregistre l Adaptateur adapt sur les bjets à surveiller. Les méthdes d enregistrement des adaptateurs dépendent du type des bjets à surveiller. Exemple : si butn1 est un bjet de la classe Buttn, et si adapt dit surveiller butn1, n écrira : butn1.addactinlistener(adapt) ; Etape 5. On cmplète dans la classe Adaptateur les méthdes bligatires prvenant des Listeners implémentés, puis n écrit dans la classe Delegue les méthdes nécessaires pur que le délégué puisse effectuer les pératins nécessaires. Exercice Cmpléter le fichier UtilFenetre.java précédent afin d btenir après validatin le résultat ci-cntre : imprt java.awt.* ; imprt... class Fenetre extends Frame { // la classe de la fenêtre (la VUE) prtected Panel p1, p2, p3, p31, p32 ; prtected TextArea txt ; prtected Buttn butn1, butn2, butn3 ; prtected CheckbxGrup cbg ; prtected Checkbx chb1, chb2, chb3 ; prtected List selectin1, selectin2 ; prtected... prtected... 8

Fenetre() { // cnstructin des Panel p1, p2 et p3 :... // n garde les instructins telles quelles // ajuts pur la gestin des événements // créatin du délégué et de l adaptateur delegue =... adapt =... // enregistrement de l adaptateur cmme listener addwindwlistener... butn1.addactinlistener... butn2.addactinlistener... butn3.addactinlistener... public class UtilFenetre { // la classe utilisateur public static vid main(string args[]) { Fenetre f = new Fenetre() ; f.pack() ; f.shw() ; class Delegue { prtected Fenetre fen ; // partie traitement (la METHODE) Delegue(Fenetre f) { fen = f ; public vid quitter() {... public vid annulle() { fen.selectin1.deselect... fen.selectin2.deselect... fen.chb1.setstate... fen.chb2.setstate... fen.chb3.setstate... fen.txt.settext... public vid affichetexte() { String res = "Vus avez chisi le " +... res=res + "\ndans la tranche hraire " +... res=res + "\nà " +... fen.txt.settext... class Adaptateur implements ActinListener, WindwListener { // aiguillage (le CONTROLEUR) prtected Delegue delegue ; Adaptateur(Delegue d) { delegue = d ; // méthde indispensable cmme ActinListener public vid actinperfrmed(actinevent e) { Object src =... String param =... if (param == "Quitter") delegue.quitter() ; else if (param == "Désélectinner") delegue.annulle() ; else delegue.affichetexte() ; // méthdes indispensables cmme WindwListener public vid windwclsing(windwevent e) { delegue.quitter() ; public vid windwclsed(windwevent e) { public vid windwicnified(windwevent e) { public vid windwdeicnified(windwevent e) { public vid windwactivated(windwevent e) { public vid windwdeactivated(windwevent e) { public vid windwopened(windwevent e) { 9

Les cnversins et les calculs Tute dnnée entrée dans un champ de saisie u récupérée d une liste de sélectin est une chaîne de caractères. Pur être utilisable en vue de calculs, elle dit être cnvertie en nmbre. Inversement, tute dnnée à afficher dans une fenêtre graphique dit être de type chaîne de caractères. Il faut dnc cnvertir les nmbres en chaînes de caractères. Cnversin d une chaîne en nmbre En un entier n : int n =... int n =... En un duble d : duble d =... duble d =... Cnversins d un nmbre en chaîne Cnversin d un entier n en chaîne ch : String ch =... Cnversin d un duble d en chaîne ch : String ch =... Exercice Cmpiler et exécuter l applicatin UtilCalcul. Cmpléter ensuite cette applicatin pur qu elle exécute la cnversin d eurs en dllars : imprt java.awt.* ; imprt java.awt.event.* ; class Fenetre extends Frame { static duble t = 1.4 ; // 1 eur = 1.4 dllars ; mettre à jur le taux prtected Panel p0,p1,p2 ; prtected TextField txt1, txt2 ; prtected Buttn butn ; prtected Delegue delegue ; prtected Adaptateur adapt ; Fenetre() { p0 = new Panel() ; p0.add(new Label("Cnversin eurs --> dllars")); add("nrth", p0); p1 = new Panel() ; p1.setlayut(new GridLayut(2,3)); p1.add(new Label("mntant en ")); p1.add(new Label(" ")) ; p1.add(new Label("mntant en $")) ; txt1 = new TextField(3) ; p1.add(txt1); butn = new Buttn(" = "); p1.add(butn) ; txt2 = new TextField(3) ; p1.add(txt2); add("center", p1) ; p2 = new Panel() ; p2.add(new Label("Taux actuel : 1 eur vaut " + t + " $")); add("suth", p2); delegue = new Delegue(this) ; adapt = new Adaptateur(delegue) ; addwindwlistener(adapt) ; butn.addactinlistener(adapt) ; public class UtilCalcul { public static vid main(string args[]) { Fenetre f = new Fenetre() ; f.pack() ; f.shw() ; 10

class Delegue { prtected Fenetre fen ; Delegue(Fenetre f) { fen = f ; public vid quitter() { System.exit(0) ; public vid calcule() {... // méthde à cmpléter............ class Adaptateur implements ActinListener, WindwListener { prtected Delegue delegue ; public Adaptateur(Delegue d) { delegue = d ; public vid actinperfrmed(actinevent e) { delegue.calcule() ; public vid windwclsing(windwevent e) { delegue.quitter() ; public vid windwclsed(windwevent e) { public vid windwicnified(windwevent e) { public vid windwdeicnified(windwevent e) { public vid windwactivated(windwevent e) { public vid windwdeactivated(windwevent e) { public vid windwopened(windwevent e) { Applicatin financière (partie 1) Il s agit de cmpléter une applicatin financière permettant de déterminer si un emprunt pur un achat immbilier est autrisé u nn par une banque et de calculer les mensualités relatives au rembursement de cet emprunt. L accrd de la banque pur autriser l emprunt dépend : du prix du bien à acquérir de l apprt persnnel dnt dispse le client de l âge du client du revenu mensuel du client du nmbre d années de rembursement (de 10 à 30 ans) L interface de saisie des dnnées est furnie dans le fichier Emprunt.java du dssier applicatin-financire. Elle se présente cmme suit : 11

L autrisatin d accrder l emprunt dépend de tris cnditins : Cnditin 1 Le mntant à emprunter (différence entre le prix du bien et l apprt persnnel) ne peut dépasser 80 fis le revenu mensuel. Sinn, un message dit être affiché (vir ci-cntre) : Cnditin 2 La smme de l âge du client et du nmbre d années de rembursement de l emprunt dit être inférieure à 70. Sinn, un message est affiché (vir ci-cntre) : Si les deux premières cnditins snt remplies, alrs : le taux annuel du prêt est déterminé. Il dépend du nmbre d années de rembursement : - si nmbre d années <=10, taux = 6 % annuel - si 10 < nmbre d années <= 20, taux = 5.5 % annuel - si 20 < nmbre d années <= 30, taux = 5 % annuel la mensualité de rembursement est calculée la cnditin 3 est testée : un prêt ne peut être autrisé que si la mensualité de rembursement ne dépasse pas 33 % du revenu mensuel. Sinn, il est refusé avec un message expliquant le refus. Exemple ù le prêt est refusé : Exemple ù le prêt peut être autrisé : Cmpléter l applicatin en implémentant les fnctinnalités décrites ci-dessus. Les applets Java Qu est-ce qu une applet? Une applet est une petite applicatin prtable, insérée dans une page HTML et chargée par un navigateur en même temps que la page HTML. Exécutée par l interpréteur java du navigateur, l applet permet de délcaliser certains traitements (calculs, animatins graphiques, vérificatin de la validité d un frmulaire, etc.) chez le client. 12

Du pint de vue infrmatique, une applet est une instance d une classe java héritant de la classe Applet : class mnapplet extends Applet {... Elle gère seule sn apparence dans la zne de la page HTML qui lui est réservée. Insertin d une applet dans une page HTML <applet cdebase=cdebase_url cde="nmclasse.class" alt="texte_de_remplacement" name="nm_instance" width=pixels height=pixels > <param name=nm_param1 value="valeur1"> <param name=nm_param2 value="valeur2"> </applet> en gras les lignes bligatires URL ù n cherche le fichier.java nm du fichier de pseud-cde texte si navigateur nn cmpatible nm de l applet dans la page html largeur puis hauteur de la zne d affichage de l applet paramètres éventuels en nmbre quelcnque Méthdes d une applet La classe maître de l applet est une classe publique, dérivant de la classe Applet. Elle ne cmprte jamais de méthde main, mais dispse de méthdes spécifiques : init() réalisant l initialisatin de l applet (remplace le cnstructeur) paint(graphics g) qui redessine en permanence l applet sur l écran à l aide d un cntexte graphique g furni. Si l n veut permettre à l utilisateur d interagir avec l applet, il faut gérer les événements en définissant (cmme précédemment) les classes Adaptateur (cntrôleur) et Delegue (exécuteur). Exécutin d une applet Il y a deux manières d exécuter des applets : faire appel à un visualiseur (l appletviewer) à qui n dnne le nm de la page HTML cntenant l applet : appletviewer nmpage.html La page HTML n est pas visible, seule l applet est visualisée faire appel à un navigateur en lui faisant afficher la page HTML cntenant l applet Transfrmatin d une applicatin en applet On peut transfrmer une applicatin en applet à cnditin : de ne pas avir besin de lire u écrire des dnnées sur la machine cliente de ne pas avir de traitement à faire sur le serveur (autre que la simple lecture d un fichier, qui est autrisée) Liste des mdificatins à effectuer : imprter le paquetage java.applet faire dériver la classe de la fenêtre (la VUE) de la classe Applet (au lieu de la classe Frame) supprimer la classe principale de l applicatin (ce qui impse de renmmer le fichier) la classe de la fenêtre étant devenue la classe maître, la déclarer public et renmmer sn cnstructeur en static vid init() mdifier la classe Adaptateur pur qu'elle n'implémente plus l'interface WindwListener mdifier la classe Delegue en cnséquence écrire la page HTML cmpiler et tester avec l appletviewer et avec un navigateur. 13

Les paramètres d une applet Une page HTML peut passer des paramètres à une applet. Si la page HTML cntient les lignes : <applet cde= "truc.class" > <param name="nm" value="dupnt"> <param name="valeur" value="3.56"> </applet> alrs n peut récupérer le nm dans les méthdes de l applet par : String nm =getparameter("nm") ; String valeur =getparameter("valeur") ; On récupère tujurs une chaîne de caractères. Si n veut cnvertir cette chaîne en nmbre, n utilise les méthdes habituelles de cnversin d une chaîne en int, flat u duble. Applicatin financière (partie 2) 1) Transfrmer l applicatin Emprunt.java en une applet intégrée dans une page HTML. Ecrire la page emprunt.html appelant l applet de la manière suivante : <html> <head> <title> Applet</title> </head> <bdy> <h2><center>applet Emprunt</center></h2> <center> <applet cde="...class" width=800 height=400> </applet> </center> </bdy> </html> 2) Mettre les tris valeurs du taux en paramètres dans la page HTML. Mdifier ensuite l applet pur que ces valeurs sient récupérées et utilisées. 14