Beruflich Dokumente
Kultur Dokumente
Chapitres traits
Dfinition
Attention : Dans cette tude, il serait prfrable de demander la reconstruction complte des projets que vous tlchargez sur votre ordinateur, pour qu'ils correspondent parfaitement au serveur Tomcat que vous utilisez.
Applet fonctionnant sous Internet Explorer. Java permet une personne de jouer contre trois adversaires informatiques dans une partie de dominos.
Les applets peuvent tre tlcharges depuis le World Wide Web de la mme manire que des pages HTML, des images ou n'importe quel lment de site Web. Si le navigateur Web utilis est quip pour traiter les applets Java, l'applet tlcharge commence s'excuter ds qu'elle a fini de se tlcharger. Contrairement aux ActiveX, Java dispose d'un modle de scurit. Le systme garantit l'utilisateur un niveau de protection lev pour son systme. Au sein de l'applet, par exemple, il ne sera pas possible d'accder aux fichiers du disque dur du poste client.
Problmes de compatibilit
Quand les applets sont apparues, il fallait un navigateur HotJava de Sun pour visualiser les pages Web qui les contenaient. Peu d'utilisateurs s'embarrassaient d'un segond navigateur uniquement pour exploiter une nouvelle fonctionnalit du Web. Les applets de Java ne sont devenues populaires que lorsque Netscape incorpora une machine Java virtuelle dans son navigateur, suivi rapidement par Internet Explorer. Toutefois, deux problmes sont survenus. Netscape ne suivait pas les versions plus modernes de Java et Microsoft hsitait entre supporter sans enthousiasme les versions obsoltes de Java et abandonner carrment la prise en charge.
Dans le cas des Applets, le serveur Tomcat sert uniquement de serveur de dploiement d'application Web. Contrairement aux Servlets et aux JSP, l'interprtation du code de l'applet n'est pas analys par le serveur, mais par la Machine Virtuelle Java intgre par le Plug-in. D'ailleurs si vous concevez des Applets sur votre machine sans les dployer, vous pouvez vous passer du serveur Tomcat.
Une application doit toujours comporter la mthode main dans la classe principale. Par ailleurs, si nous dsirons l'affichage d'une fentre, votre classe principale doit hriter de JFrame. JFrame dispose de toutes les proprits ncessaires pour la gestion
TestApplication.java
TestApplet.java
TestApplet.html
Cration de ces deux fichiers avec JBuilder afin de tester cette premire applet
Nous allons effectivement crer ces deux fichiers et tester leurs fonctionnements mutuels. Dans un premier temps, notre test consistera lancer, tout simplement, notre page HTML dans l'ordinateur o a t conu l'applet. Il est en effet possible de crer des documents pour nous mme, afin de les consulter en temps utile sans se proccuper d'un service Web quelconque. Nous verrons ensuite, comment dployer cette page Web, afin qu'elle soit consultable depuis le rseau local ou mme depuis le rseau Internet. Il sera alors ncessaire d'utiliser (et donc de configurer) le serveur Web Tomcat que nous avons dj voqu en prambule.
Au vu de ce qui vient d'tre dit, nous devons, d'ors et dj, prendre un certain nombre de prcautions pour se prmunir des disfonctionnements et surtout se protger de l'extrieur puisque notre travail va devenir accessible tout le monde. Il est en effet prfrable, par souci de confidentialit, de sparer le code source de toute la partie compil, qui sera elle dployable ultrieurement sur le serveur Web.
Pour toutes mes applications Web, j'aurais donc un rpertoire <de travail> dans lequel, je vais stock tous les projets Web en cours avec l'ensemble de tous les sources, et un rpertoire <WEB> qui me servira de stockage de toutes les applications Web effectives et dployables sans qu'il soit possible d'atteindre les sources correspondants.
A l'aide de Jbuilder, nous allons fabriquer notre projet que nous appellerons TestApplet en tenant compte de toutes ces considrations.
Ecrivez ensuite le code source de l'applet vu plus haut en faisant appel, au pralable, l'expert de "Cration d'une nouvelle classe Java" afin de crer le fichier source correspondant (et au bon endroit). Faites en sorte de bien hriter de la classe de base JApplet.
Nous nous occupons ensuite de la page HTML. Dans ce cas, et malgr que cela ne soit pas bien pratique, il faut demander la cration d'un nouveau fichier.
Aprs avoir saisi l'ensemble de vos codes sources, vous pouvez compiler votre projet, il ne restera plus donc qu' le tester. Aprs la compilation, voici normalement l'organisation des fichiers que vous devez obtenir.
Il ne reste plus qu' tester cette applet. Il existe l'utilitaire <appletviewer> qui permet de tester juste la partie applet sans la page Web. De mon point de vue, le vritable test s'effectue au travers du navigateur que vous utilisez en supposant, bien entendu, que vous ayez dj install le plugin ncessaire. Nous allons prendre effectivement cette deuxme approche. Pour cela, il suffit d'utiliser l'explorateur de fichier et de doublecliquer sur l'icne reprsentant la page Web "TestApplet.html" qui par association lancera automatiquement le navigateur.
Vous remarquez que le contenu de l'applet est totalement identique au contenu de l'application que vous avez excut dans un premier temps. Seul le conteneur change. Dans le cas d'une application, le conteneur est une fentre. Pour l'applet, le conteneur est la page Web.
Contrairement ce que vous pouvez penser, la fabrication d'une applet demeure trs simple. C'est vrai que nous avons mis pas mal de temps avant de constituer notre premier exemple, mais il tait ncessaire de poser toutes les bases pour bien matriser la situation. Ce sera encore plus facile et plus rapide lorsque nous utiliserons le mode conception de l'interface JBuilder. Avant cela, j'aimerais que nous dployons cette applet afin qu'elle soit consultable partir d'un autre poste sur le rseau ou mme depuis Internet. Pour cela, il est ncessaire d'utiliser un service Web qui, dans notre cas, sera reprsent par le serveur Tomcat. Nous allons d'ailleurs le configurer afin qu'il soit oprationnel sur votre machine.
Configuration de Tomcat
Tomcat a dj t install avec Jbuilder, et comme lui, il est crit en Java. Toutefois, il est ncessaire de le configurer. Comme il est crit en Java, il faut lui fournir l'endroit o est install le JRE afin qu'il puisse se servir de la Machine Virtuelle Java. Nous allons mettre en oeuvre une variable d'environnement qui prcise l'endroit o se situe le JRE, savoir : JAVA_HOME.
Avec Windows 2000, pour crer ces variables d'environnement, cliquez avec le bouton droit de la souris sur l'icne "Poste de travail" et choisissez la rubrique "Proprits". Sur la bote de dialogue, slectionnez l'onglet "Avanc" et ensuite sur le bouton
"Variables d'environnement...". Enfin, cliquez sur le bouton "Nouveau..." dans la zone "Variables systme". A l'aide de l'explorateur, localisez l'endroit o se situe les deux entits et par copier-coller complter ces deux variables d'environnement comme ci-dessous.
Sous les dernires versions de Tomcat, cette partie n'est mme pas faire puisque l'installation de Tomcat intgre directement les variables d'environnement . (Tomcat 5 et suivant).
Pour dmarrer Tomcat, il suffit de cliquer sur le fichier "startup.bat" dans le rpertoire "bin" du serveur. A tout moment, il sera possible de l'arrter en cliquant sur le fichier "shutdown.bat".
Lorsque vous activez Tomcat, une fentre "Dos" apparat et un certain nombre de choses sont excutes, notamment le choix du port de communication pour le protocole HTTP. Il existe un certain un standard pour les ports de communication. Le port 80 pour le protocole HTTP, le port 21 pour le protocole FTP, etc. Vous remarquez que Tomcat a choisi par dfaut le port 8080, ce qui donne la possibilit de garder votre serveur Web usuel comme IIS ou Apache et donc d'avoir deux serveurs Web sur votre machine. Si effectivement vous avez besoin des deux serveurs Web, il est judicieux d'avoir des ports diffrents pour viter les conflits et de l'extrieur de pouvoir choisir votre serveur. Enfin, si vous dsirez utiliser Tomcat comme votre unique serveur Web, vous pouvez rgler son port par dfaut sur la valeur 80. Ce rglage s'effectue dans le fichier "server.xml" qui se trouve dans le
Lorsque le serveur Web Tomcat est dmarr, vous pouvez l'utiliser soit localement en donnant l'URL suivante votre navigateur "http://localhost:8080", soit "http://nomPosteOuDns:8080" si vous l'appeler depuis un autre ordinateur. Le numro du port est prciser si nous n'utilisons pas le mumro standard.
Si vous devez dployer vos propres applications Web, il est ncessaire d'tre un utilisateur habilit. En effet, par scurit, la page du gestionnaire d'applications Web de Tomcat n'est accessible qu'aux utilisateurs ayant un rle de manager, tandis que les pages d'administration de Tomcat sont rserves aux utilisateurs ayant un rle d'admin.
Pour attribuer un utilisateur ces deux rles, il faut diter le fichier "tomcat-users.xml" qui se trouve dans le rpertoire <conf> de Tomcat. En voici un exemple :
Comme tous les serveurs Web, Tomcat utilise un rpertoire par dfaut o nous pouvons placer toutes nos applications Web. Ce rpertoire dans Tomcat se nomme <webapps>.
Nous pouvons, ds lors, placer nos application Web dans ce rpertoire . Pour viter le mlange de toutes les informations, il est prfrable que chaque application Web soit place dans son propre rpertoire. Nous pouvons galement fabriquer ce que l'on appelle une archive Web (extention war) qui est spcialement conu pour le dploiement. Toutefois, cette archive possde une structure particulire, comme le descripteur de dploiement, qui n'est utile que pour les servlets et les pages JSP. Cette archive sera donc traite ultrieurement dans une autre tude. En phase de dveloppement et de test, il est pratique de configurer Tomcat de telle faon que le dploiement de votre application Web soit issue directement du sous-dossier <WEB/TestApplet> de votre arborescence de travail et que le serveur recharge automatiquement toute classe modifie. Une fois que tout est dfinitivement au point, vous pouvez ensuite dployer le rpertoire <TestApplet> dans le rpertoire <webapps> de votre serveur Web. Ainsi votre projet fait dfinitivement parti de votre serveur Web.
Attention : lorsque nous arrtons le serveur Tomcat et qu'ensuite nous le redmarrons, seules les applications Web faisant
parties du rpertoire par dfaut de Tomcat <webapps> sont automatiquement dmarres et prises en compte. Les autres applications Web, situes en dehors du serveur, dans des rpertoires de <travail>, devront tre relances manuellement, en utilisant le gestionnaire d'application Web dont le fonctionnement est prcis dans le chapitre suivant. Attention, ne mlanger pas les archives web qui comportent l'extention <war> et les archives classiques <jar>. Ces dernires sont prvues pour stocker l'ensemble des classes que comporte une application ou une applet dans un mme fichier. Par ailleurs, il est possible de la compresser. Dans le cas de l'applet, c'est intressant, puisque cela vite de faire systmatiquement une requte http pour chaque classe tlcharge, ce qui rduit considrablement le temps de rponse. Les archives <war> servent uniquement pour le dploiement, puisque une fois qu'elles sont effectivement dploye sur le serveur Tomcat, ce dernier les dsarchivent pour retrouver toute l'arborescence de dpart. En fait, rien n'empche de fabriquer des archives <jar> l'intrieur des archives <war>.
A la fin de cette tude, nous fabriquerons une archive.
Nous allons donc la dployer en se servant du serveur Tomcat tout en conservant notre rpertoire d'tude. Nous allons, en fait, indiquer au travers de Tomcat que notre rpertoire <WEB/TestApplet> o se trouve notre applet ainsi que notre page HTML est autoris tre consulte depuis l'extrieur.
Pour cela, il faut, bien entendu, activer votre serveur tomcat et visualiser la page d'accueil. Cliquer ensuite sur le lien "Tomcat Manager" pour pouvoir intgrer votre application Web (Il faut que vous ayez les droits requis - manager - pour tre habilit assurer cette gestion ). Une bote de dialogue apparat pour requrir votre nom de manager et votre mot de passe associ. Aprs validation, vous entrez effectivement dans le gestionnaire des applications Web Tomcat qui vous montre, entre autre, les applications dj disponibles.
Vous n'avez plus qu' prciser votre URL complte de votre rpertoire d'tude (file doit tre ajout si votre rpertoire se trouve sur le mme ordinateur que le serveur Tomcat). Attention l'orientation des sparateurs de rpertoires et fichiers. C'est comme pour les URL, il faut utiliser le trait de fraction " / " . Il suffit ensuite de valider votre URL en cliquant sur le bouton "Installation".
Si vous ne dsirez pas changer tous les " \", vous pouvez crire au dbut : file:// Par contre, dans ce cas l, il faut indiquer, dans la rubrique Chemin, le nom de l'application Web prciser dans l'URL, savoir ici
: /TestApplet
Votre application Web est maintenant intgre et gre par le serveur Tomcat. Il est possible, ds lors, de l'arrter de la recharger et mme de la retirer lorsque vous aurez effectu les diffrents tests ncessaires. Ceci dit, vous pouvez conserver cet emplacement titre dfinitif, pourquoi pas !
Votre application Web est localisable par le chemin /TestApplet. Pour la lancer, il faudra donc prciser cette localisation. .
Maintenant, toute est prt. Il suffit d'utiliser votre navigateur et de taper votre URL en prcisant juste le nom de votre application Web </TestApplet> ainsi que la page Web lancer dans votre application Web </TestApplet.html>.
Vous pouvez mme ne pas prciser le nom de la page Web. Par contre, dans ces conditions, il est impratif de choisir comme nom de page Web : "index.html". Sauf exception, c'est ce que je ferais systmatiquement afin que le nom de l'URL soit facile retenir et donc la plus courte possible.
Je vous invite justement changer le nom de "TestApplet.html" en "index.html" pour tester cette dernire possibilit.
Attention : Je le reprcise, lorsque nous arrtons le serveur Tomcat et qu'ensuite nous le redmarrons, seules les applications
Web faisant parties du rpertoire par dfaut de Tomcat <webapps> sont automatiquement dmarres et prises en compte. Les autres applications Web, situes en dehors du serveur, dans des rpertoires de <travail>, devront tre relances manuellement, en utilisant le gestionnaire d'application Web dont le fonctionnement est prcis dans le chapitre suivant.
void init();
Cette mthode rassemble toutes les initialisations ncessaires l'applet. Elle est comparable un constructeur. Elle est appele automatiquement par le systme quand Java lance l'applet pour la premire fois. En principe, une applet devra traiter les valeurs param (voir plus loin) et ajouter des composants l'interface utilisateur. Les applets possdent ventuellement un constructeur par dfaut, mais l'usage est d'effectuer toutes les initialisations dans la mthode init et non dans le constructeur par dfaut. Cette mthode est appele automatiquement aprs l'appel par Java de la mthode init. Elle est appele de nouveau chaque fois que l'utilisateur revient la page contenant l'applet aprs avoir parcouru d'autres pages. Notez que la mthode start peut-tre appele plusieurs fois, la diffrence de la mthode init. Par consquent, le code ne devant tre excut qu'une seule fois doit se trouver dans la mthode init et non dans la mthode start. La mthode start va relancer un thread de l'applet, par exemple pour ractiver une animation. Il est inutile d'implmenter cette mthode (ni la mthode stop) si l'applet ne contient rien qu'il soit ncessaire de suspendre. Cette mthode est appele automatiquement quand l'utilisateur quitte la page sur laquelle se trouve l'applet. Elle peut donc tre appele plusieurs fois pour la mme applet. Son but est de permettre l'arrt d'une activit gourmande en temps UC, qui ralentit le systme lorsque l'utilisateur ne s'intresse pas l'applet. Il ne faut pas appeler directement cette mthode. Si l'applet n'effectue pas d'animation, ne joue pas de fichier audio, n'effectue pas de calcul dans un thread, il n'est en principe pas ncessaire d'employer cette mthode. Java nous garantit que cette mthode est appele lorsque le navigateur s'arrte normalement. Puisqu'une applet est associe une page Web, vous n'avez pas vous proccuper de supprimer le panneau. Cette tape se fera automatiquement la sortie du navigateur.
void start();
void stop();
void destroy();
Cet attribut (obligatoire) est utilis pour spcifier le fichier de classe d'applet du plus haut niveau (classe principale), qui tend Applet ou JApplet. Si l'applet se trouve dans un paquetage, il convient alors de le prciser : nomPaquetage.nomApplet.class Cet attribut est utilis pour spcifier la largeur en pixels de la fentre rserve l'applet. Obligatoire Cet attribut est utilis pour spcifier la hauteur en pixels de la fentre rserve l'applet. Obligatoire Cet attribut est utilis pour spcifier le dossier principal des applets. L'attribut code est interprt par rapport ce dossier. Si vous ne spcifiez pas cet attribut, le dossier de la page HTML actuelle sera utilis par dfaut. Cet attribut est utilis comme l'attribut align de img, pour spcifier l'alignement de l'applet l'intrieur de la page Web. Les valeurs autorises sont left, right, top, bottom, et middle. Cet attribut est employ comme l'attribut hspace de img, pour spcifier l'espace vide en pixels rserv droite et gauche de l'applet. Cet attribut est employ comme l'attribut vspace de img, pour spcifier l'espace vide en pixels rserv en haut et en bas de l'applet. Cet attribut est employ pour spcifier un fichier jar partir duquel les classes et les images doivent tre charges. Cet attribut est employ pour spcifier un nom utiliser pour les communications internes l'applet et galement pour permettre une communication entre diffrentes applets d'une mme page Web. Cet attribut est utiliser conjointement avec la mthode getApplet.
name
type
Uniquement pour les pages JSP : Cet attribut est obligatoire sin nous utilisons une page JSP et non plus une page HTML. Dans ce cas l, il sera utile de prciser la valeur "applet".
Puisque nous sommes dans le monde de Java, nous pouvons crire nos pages Web directement sous forme de pages JSP la place des pages HTML. Nous verrons leurs utilites dans une prochaine tude. Si c'est le cas, le nom de la balise est diffrente. Il s'agit cette fois-ci de la balise <jsp:plugin>. Un quatrime paramtre est alors obligatoire et prcise que ce plugin concerne une applet. Vous avez ci-contre l'quivalence de la balise <applet> que nous venons de traiter. Attention, dans ce cas l, le nom de la page Web doit tre "TestApplet.jsp".
Ensuite, nous allons utiliser l'expert Applet qui est fourni dans la galerie d'objets en cliquant sur le bouton "Nouveau" et en slectionnant l'onglet "Web".
En cliquant sur l'icne "Applet", vous lancez alors l'expert qui propose 4 pages. La premire page s'intresse plus particulirement l'applet.
Vous pouvez passer directement la troisime page. Cette page concerne la page HTML. Nous retrouvons les attributs de la balise <applet>. Nous pouvons rgler galement la balise <title>.
Pour la dernire page de cet expert, nous pouvons demander ou pas la cration d'une configuration d'excution. Dans la plupart du temps, cela n'est pas ncessaire puisque l'excution se fait directement par le navigateur. Toutefois, vous pouvez tester votre
applet seule indpendemment de votre navigateur. Il faut alors valider cette option et utiliser l'utilitaire <appletviewer> disponible avec le JDK. Pour cette seule fois, nous allons valider cette option.
Grce cet expert, nous obtenons directement la cration des deux fichiers ncessaires, savoir la page HTML et l'applet qui s'incrira l'intrieur de cette page, ce qui donne un gain de temps et facilite grandement notre travail.
Dans l'ordre, nous allons construire d'abord l'applet et quand elle sera au point, nous rglerons ensuite la page HTML pour que la prsentation corresponde notre attente.
Une fois que vous avez plac tous les composants ncessaires l'applet et que vous avez grer l'vnement li au bouton, vous pouvez excuter votre applet. Vous avez alors la fentre AppletViewer qui est lance. Cette fentre est fournie avec le JDK et ce programme est prvu pour tester les applets. Attention toutefois, la dimension de la fentre n'a rien voir avec les dimensions que vous avez choisi pour votre applet. Si le comportement de votre applet ne vous satisfait pas, vous pouvez revenir au mode conception et corriger les erreurs retenues. Vous pouvez alors relancer indfiniment l'AppletViewer jusqu' ce que vous soyez pleinement satisfait.
Juste un dtail. Le nom de la page Web donn par l'expert est le mme nom que l'applet. Je prfre, comme je l'ai dj voqu, changer ce nom et proposer plutt "index.html" pour que l'URL soit plus facile crire lorsque nous la dploierons effectivement sur le serveur Web.
Cette fois-ci, tout est prt. Vous pouvez ds lors dployer votre applet en utilisant la technique que nous avons dj mis en oeuvre par l'intermdiaire du serveur Tomcat.
Nouveau code avec la mthode getParameter L'argument "message" qui se trouve dans la mthode getParameter correspond l'attribut name de la balise param. Cette mthode renvoie la valeur donne par l'attribut value de cette mme balise.
Le but de ce chapitre est de montrer l'utilit des mthodes start et stop de l'applet. Il convient donc qu'elles soient automatiquement prsentes dans le code de l'applet. Aussi, slectionnez la rubrique "Crer les mthodes standard".
Lorsqu'effectivement un vnement de type ActionListener survient comme justement le top d'horloge de la classe Timer, la mthode associe cet vnement est sollicite. Dans le cas d'un vnement de type ActionListener, il s'agit de la mthode actionPerformed. C'est justement dans cette mthode qu'il faut raliser le dplacement.
Le dfilement du texte n'est utile que lorsque la page Web est prsente. Si l'utilisateur, consulte une autre page, l'applet elle reste
active (tant que le navigateur est en fonction), il serait alors prfrable d'arrter le dfilement pour ne pas prendre trop de ressource systme. C'est le but de la mthode stop de l'applet. Justement, il existe galement une mthode stop sur le timer qu'il suffit de solliciter pour ce cas de figure. Lorsque nous revenons de nouveau sur la page Web qui possde l'applet, il faut de nouveau ractiver le timer par sa mthode start qui, elle-mme, est active par la mthode start de l'applet. Cette dernire est d'ailleurs automatiquement lance au tout dpart, juste aprs la cration de l'applet.
La classe Font possde des mthodes deriveFont pour changer juste un lement de la fonte sans perturber le reste. Cette mthode est surdfinies pour changer uniquement le style, la taille, ou mme les deux :
1. Font deriveFont (int style) : Change uniquement le style de la fonte. 2. Font deriveFont (float taille) : Change uniquement le style de la fonte. 3. Font deriveFont (int style, float taille) : Change la taille et le style de la fonte.
AppletContext getAppletContext();
Image getImage(URL url); Image getImage(URL url, String nom); AudioClip getAudioClip(URL url); String getParameter(String nom); URL getDocumentBase(); URL getCodeBase();
java.applet.AppletContext
Applet getApplet(String nom); Renvoie l'applet dsigne qui se trouve dans le contexte courant, ou bien null si elle n'existe pas. La recherche n'est faite que dans la page Web courante. Cette mthode s'utilise conjointement avec l'attribut name de la balise applet de votre page Web. C'est en effet cet attribut qui dtermine le nom de chacune des applets prvues dans la page Web, ce qui permet de les diffrencier. Renvoie la liste de toutes les applets d'un mme contexte, c'est dire d'une mme page Web. Affiche une nouvelle page Web dans un cadre du navigateur. dans la premire variante de cette mthode, la nouvelle page remplace la page courante. La seconde variante utilise la chane pour identifier le cadre cible. La chane cible peut-tre : void showDocument(URL url); 1. "_self" : afficher dans le cadre courant, quivalent la premire variante.
Enumeration getApplets();
2. "_parent" : afficher dans le cadre parent. 3. "_top" : afficher dans le cadre situ le plus haut dans la hirarchie. 4. "_blank" : afficher dans une nouvelle fentre sans nom et place audessus. 5. La chane cible peut indiquer le nom d'un cadre.
java.net.URL
URL(String nom); URL(URL base, String nom); URL getDocumentBase(); URL getCodeBase(); void play(URL url); void play(URL url, String nom); AudioClip getAudioClip(URL url); AudioClip getAudioClip(URL url, String nom); Image getImage(URL url); Image getImage(URL url, String nom); URLConnection openConnection(); Cre un objet URL partir d'une chane dcrivant une URL absolue. Cre un objet URL relatif. Lorsque la chane nom dcrit une URL absolue, l'URL de base est ignore. Sinon, elle est interprte comme un rpertoire relatif l'URL de base. Rcupre l'URL de la page Web HTML contenant l'applet. Cela permet de rfrencer une autre page Web relativement cette URL. Rcupre l'URL du code de l'applet. C'est assez frquent que la classe qui reprsente l'applet soit dans un rpertoire diffrent de la page HTML. La premire variante joue un fichier audio spcifi par l'URL. La seconde utilise la chane nom pour spcifier un chemin relatif l'URL. Si le clip audio ne peut tre trouv, il ne se passe rien. Rcupre un clip audio l'URL spcifie. La seconde version utilise la chane nom pour spcifier un chemin relatif l'URL. Les mthodes renvoient null lorsque le clip audio est introuvable. Rcupre une image l'URL spcifie. Ces mthodes renvoient toujours immdiatement un objet image, mme lorsque l'image n'existe pas. Les donnes de l'image ne sont en fait charges qu'au premier affichage de l'image. Renvoie un objet URLConnection qui gre la connection la ressource, notamment un serveur Web.
Pour comprendre l'utilit de certaines de ces mthodes, nous allons construire une applet qui possdera une image de fond, cette image se trouvant au mme niveau que la page JSP. Cette applet comportera galement un menu qui nous permettra de choisir une page Web et de l'afficher dans le cadre se situant en dessous. Enfin, nous proposerons l'affichage d'un message simple dans la barre d'tat du navigateur lorsque l'utilisateur passera le curseur de la souris au dessus d'une rubrique du menu.
L'image de fond sera place sur un panneau, lequel sera dispos sur la partie centrale de l'applet.
PanneauImage.java
la mthode getDocumentBase de l'applet permet de rcuprer l'URL (adresse) relative, ce qui signifie, par exemple, que le systme va rechercher un fichier "chouette.jpg" qui se trouve au mme emplacement (mme rpertoire) que le document Web HTML.
Pour afficher un texte en transparence, il est possible d'utiliser la classe Color avec un de ses constructeurs 4 arguments de types float. Ces arguments sont dans l'ordre : le rouge, le vert, le bleu, l'alpha (opacit). Chacun des arguments doit avoir une valeur comprise entre 0 et 1. Dans le code ci-dessous, le message Bienvenue s'affiche avec une opacit de 30% ou si vous voulez une transparence de 70%.
index.htm
Il est bien sr possible d'afficher des pages qui sont en dehors de notre projet et en dehors de notre serveur Web, il suffit de prciser alors l'URL complte en donnant l'adresse absolue. Par contre, comme nous venons de le voir, l'utilisation de la mthode getDocumentBase (ou getCodeBase) permet de rfrencer d'autres pages relativement.
URL absolue
Utilisez la proprit toolTipText pour placer une bulle d'aide sur le composant concern.
proprit toolTipText
Pour terminer, n'oubliez pas de rgler la proprit JMenuBar sur la barre de menu que vous avez cre en mode conception, sinon elle n'apparatra pas l'affichage de votre applet.
proprit JMenuBar
Nous allons mettre en oeuvre un projet qui permet d'tablir une communication entre plusieurs applets au sein d'une mme page Web. Plus prcisment, nous allons proposer un affichage sur l'applet n2 d'un message issu d'une zone de saisie qui se trouve sur l'applet n1. La communication s'tablira lorsque l'utilisateur validera la proposition avec le bouton "Envoyer". Pour cela, vous allez constituer un projet que vous appellerez Communication et, comme c'est une page Web, vous allez le placer dans le rpertoire ROOT du serveur Tomcat, pour tre sr qu'il fonctionnera correctement.
En utilisant l'expert appropri, vous allez ensuite construire la premire applet Applet1 de dimension <200, 50> et qui doit se situer dans le paquetage communication (c'est juste titre d'exercice). Cette applet comporte une zone de saisie - saisie - qui se situe sur la partie nord. Elle comporte galement un bouton - boutonEnvoyer - qui permettra d'envoyer le message issu de la zone de saisie et qui est plac sur la partie sud.
En procdant de la mme manire, vous allez constituer la deuxime applet de mme dimension - Applet2 - qui comporte juste un label - message - et qui doit tre plac sur la partie centrale. Vous ferez en sorte que le texte de ce message soit systmatiquement centr horizontalement en utilisant la proprit horizontalAlignemnt. Par ailleurs, vous pouvez en profiter pour choisir une fonte votre convenance.
index.html
Il faut constituer maintenant la page Web. Il suffit de placer dans la page JSP les deux plugin correspondant aux deux applets. Il peut tre judicieux de proposer un alignement, respectivement gauche pour l'applet n1 et droite pour l'applet n2. Pensez bien prfixer le paquetage lorsque vous dsignez votre applet.
C'est lorsque l'oprateur agit sur le bouton "Envoyer" que la communication avec les applets s'effectue rellement. C'est donc au sein de la mthode qui gre l'vnement de l'action sur le bouton que se situe le passage du message. Dans un premier temps, il est ncessaire de connatre les applets qui se trouvent sur la page Web. Il faut donc rcuprer le contexte grce la mthode getAppletContext que nous avons dj utilis par ailleurs. Rappelons que le contexte correspond en fait la page Web actuelle. Une fois que le contexte est rcupr, il est alors possible de connatre la liste des applets utilises grce la mthode getApplets. Il est noter qu'il n'est possible, par ce principe, de communiquer uniquement qu'avec des applets qui se trouvent sur la mme page Web. La mthode getApplets renvoie un objet de type Enumration. Cet objet possde deux mthodes, notamment la mthode hasMoreElements qui retourne vrai s'il existe encore des valeurs numrer, et permet donc de dterminer si une boucle doit se poursuivre. La deuxime mthode est nextElement qui, au sein de la boucle, permet de retourner un objet de type Object et qui correspond l'lment suivant de la liste (ou le premier si c'est la premire occurence).
Une fois que l'on a rcupr le nom de la classe qui correspond l'applet n2 - communication.Applet2 - il est alors possible d'utiliser par transtypage la mthode correspondante au passage du message - changerMessage. On donne alors en paramtre le texte issu de la zone de saisie.
Gnralement, nous fabriquons une archive lorsque le projet comporte beaucoup de classes. Ici, cette archive n'est pas indispensable, c'est juste pour mettre en oeuvre les techniques ncessaires dans le cas o un jour cela s'avre utile.
Faites exactement comme pour le projet prcdent, la seule diffrence tant ventuellement le nom du paquetage que j'ai dsign personnellement par "archive". Il existe galement une petite diffrence sur la page index.html. Nous allons le voir juste un petit peu aprs. Une fois que tout est prt, nous allons demander fabriquer une archive de notre projet. Je rappelle que l'extention de cette archive est <jar>. Pour cela, cliquez sur le bouton "nouveau" pour faire apparatre la galerie d'objet que nous connaissons dj bien. Dans la rubrique Construction, slectionnez "Construction d'archives".
Vous avez l'expert correspondant qui s'affiche. Les rglages se font en cinq tapes. La premire concerne le type d'archive. Dans notre cas, il suffit de prciser que c'est pour une applet.
La deuxime est importante. Il faut vraiment que votre archive soit place au bon endroit pour qu'elle puisse tre dploye au mme titre que la page Web. Elle doit donc tre aplce au mme niveau que la page Web. Dans cette tape, vous pouvez laisser les slections par dfaut qui prcise que l'archive doit tre compresse et tre automatiquement fabrique lorsque nous construisons notre projet.
Sauf si vous avez des bibliothques supplmentaires intgrer, vous pouvez passer la dernire tape. Il faut inclure le manifeste qui dcrit en fait la structure de l'archive. Le serveur Web se servira de ce manifest pour savoir quoi faire. La slection par dfaut suffit pour la plupart des cas.
Comme promis, il faut maintenant rgler la page Web pour qu'elle prenne toutes les classes ncessaires, mais cette fois-ci au travers de l'archive. C'est trs facile faire, il suffit juste de prendre l'attribut archive de la balise applet de chacune de ces classes et de prciser le nom de l'archive.
Vous pouvez ds lors lancer la construction de l'ensemble du projet. Pendant cette construction, l'archive est automatiquement mise en oeuvre. Vous pouvez ensuite effectuer votre dploiement sur le serveur Tomcat et tester votre rsultat.
JFrame.
Juste une petite remarque. Il ne s'agit pas d'une application classique vu que cette fentre doit tre active par une applet. Cette classe ne doit donc pas comporter de mthode main.
Par ce systme, l'objet fentre popup existe mais sans tre encore visible. Toutefois, elle est prte fonctionner. Il suffira alors de la rendre visible en lanant la mthode adapte (setVisible) lorsque l'utilisateur clique sur le bouton "Calculatrice".
Conclusion : Finalement, c'est facile de fabriquer une fentre pop-up. Pensez bien qu'il s'agit d'une fentre classique sans tre active par une mthode main vu que ce n'est pas une application. Nous aurions pu aussi proposer une fentre qui s'affiche automatiquement ds l'apparition de l'applet et qui s'enlve par la suite lorsque nous consultons une autre page Web. Il convient dans ce cas l, d'utiliser respectivement les mthodes start et stop de l'applet.
Vous allez mettre en oeuvre une applet qui permettra d'tablir des conversions entre l'uro et le Franc. A l'utilisation, il suffit de slectionner l'onglet qui vous convient pour excuter le calcul correspondant. Dans JBuilder (donc dans Java), vous disposez d'un conteneur d'onglets qui correspond la classe JTabbedPane, et qui se situe sur la palette "Conteneurs Swing". Chaque onglet est reprsent par la suite par un panneau (JPanel), et il suffit de rgler la proprit constraints pout avoir le bon libell.
Par ailleurs, il existe une classe NumberFormat qui formate et analyse les nombres d'une manire spcifique aux paramtres locaux (paramtres propres la France par exemple). Elle me parat utile pour obtenir un affichage habituel pour les valeurs montaires. Cette classe dispose d'une mthode statique getNumberInstance qui retourne un objet du type NumberFormat qui correspond aux paramtres locaux installs dans l'ordinateur. Elle possde galement une mthode qui permet d'indiquer le nombre de chiffres aprs la virgule et qui s'appelle setMaximumFractionDigits. Enfin, il suffit d'utiliser la mthode format de l'objet reprsentant NumberFormat qui retourne la chane formate par rapport un rel pass en argument.
Vous allez galement contruire une applet qui propose deux animations en alternance, soit un texte qui dfile sur la partie basse, soit, dans cette mme zone, un texte qui se dveloppe lettre aprs lettre. Le passage d'une animation l'autre s'effectuera toute les 5 secondes. L'astuce pour raliser cette permutation, est d'utiliser le gestionnaire CardLayout sur le panneau du bas, et c'est un timer qui gre la commutation. Enfin, le texte animer sera donner dans la page HTML.