Bases des applets Java
Une applet est un programme Java. Elle s'exécute généralement dans un navigateur Web compatible Java. Parce qu'elle dispose d'un support complet de l'API Java, l'applet est une application Java complète.
Voici les différences importantes entre une application Java autonome et un programme applet :
- En Java, une classe Applet hérite de la classe java.applet.Applet.
- La classe Applet ne définit pas main(), donc un programme Applet n'appelle pas la méthode main().
- Les applets sont conçues pour être intégrées dans une page HTML.
- Lorsqu'un utilisateur navigue sur une page HTML contenant une applet, le code de l'applet est téléchargé sur la machine de l'utilisateur.
- Pour afficher une applet, une JVM est requise. La JVM peut être un plug-in de navigateur web ou un environnement d'exécution autonome.
- La JVM sur la machine de l'utilisateur crée une instance de la classe Applet et appelle diverses méthodes du cycle de vie de l'applet.
- Les applets sont soumises à des règles de sécurité strictes appliquées par les navigateurs web. Le mécanisme de sécurité des applets est appelé sécurité du bac à sable.
- Les autres classes requises par l'applet peuvent être téléchargées sous la forme de fichiers Java Archive (JAR).
Cycle de vie d'une applet
Les quatre méthodes de la classe Applet fournissent un cadre sur lequel vous pouvez développer de petites applets :
- init: Le but de cette méthode est de fournir toute initialisation requise pour votre applet. Cette méthode est appelée après que les balises param à l'intérieur de la balise Applet ont été traitées.
- start:Après que le navigateur a appelé la méthode init, cette méthode est automatiquement appelée. Cette méthode est appelée chaque fois que l'utilisateur revient sur la page contenant l'applet depuis une autre page.
- stop:Cette méthode est automatiquement appelée lorsque l'utilisateur quitte la page contenant l'applet. Par conséquent, cette méthode peut être appelée à plusieurs reprises dans la même applet.
- destroy: Cette méthode n'est appelée que lorsque le navigateur est fermé normalement. Comme les applets ne sont valides que sur les pages HTML, vous ne devez pas laisser de ressources derrière après que l'utilisateur a quitté la page contenant l'applet.
- paint:Cette méthode est appelée immédiatement après la méthode start(), ou lorsque l'Applet doit se repeindre dans le navigateur. La méthode paint() est en fait héritée de java.awt.
Applet « Hello, World » :
Voici un programme Applet simple, HelloWorldApplet.java :
Code du fichier HelloWorldApplet.java :
Ces instructions d'importation importent les classes suivantes dans notre classe Applet :
Sans ces instructions d'importation, le compilateur Java ne peut pas reconnaître les classes Applet et Graphics.
Classe Applet
Chaque Applet est une sous-classe de la classe java.applet.Applet. La classe Applet de base fournit des méthodes que les sous-classes peuvent appeler afin d'obtenir des informations et des services de contexte du navigateur.
Ces méthodes font ce qui suit :
- Obtenir les paramètres de l'Applet
- Obtenir l'emplacement réseau du fichier HTML contenant l'Applet
- Obtenir l'emplacement réseau du répertoire de classes de l'Applet
- Afficher les informations d'état du navigateur
- Récupérer une image
- Récupérer un clip audio
- Jouer un clip audio
- Redimensionner cet Applet
De plus, la classe Applet fournit une interface permettant au Viewer ou au navigateur d'obtenir des informations sur l'Applet et de contrôler l'exécution de l'Applet.
La visionneuse peut :
- Demander des informations sur l'auteur, la version et le copyright de l'applet
- Demander des descriptions des paramètres reconnus par l'applet
- Initialiser l'applet
- Détruire l'applet
- Démarrer l'exécution de l'applet
- Arrêter l'exécution de l'applet
La classe Applet fournit des implémentations par défaut pour ces méthodes, qui peuvent être redéfinies si nécessaire.
L'applet « Hello, World » est écrite conformément à la norme. La seule méthode redéfinie est la méthode paint.
Appel d'une applet
Une applet est un programme Java. Elle s'exécute généralement dans un navigateur Web compatible Java. Parce qu'elle dispose d'un support complet de l'API Java, l'applet est une application Java complète.
La balise <applet> est la base pour intégrer des applets dans des fichiers HTML. Voici un exemple d'appel d'une applet « Hello World » :
Code HTML :
Remarque :Vous pouvez vous référer à la balise Applet HTML pour en savoir plus sur la façon d'appeler des applets depuis HTML.
Les attributs de la balise <applet> spécifient la classe d'Applet à exécuter. width et height sont utilisés pour spécifier la taille initiale du panneau d'exécution de l'Applet. L'Applet doit être fermée avec la balise </applet>.
Si l'Applet accepte des paramètres, les valeurs des paramètres doivent être ajoutées dans des balises <param>, qui sont placées entre <applet> et </applet>. Le navigateur ignore le texte et les autres balises entre les balises applet.
Les navigateurs qui ne prennent pas en charge Java ne peuvent pas exécuter <applet> et </applet>. Par conséquent, tout ce qui est affiché entre les balises et qui n'a aucun rapport avec l'applet est visible dans les navigateurs qui ne prennent pas en charge Java.
Le Viewer ou le navigateur recherche le code Java compilé à l'emplacement du document. Pour spécifier le chemin du document, utilisez l'attribut codebase de la balise <applet>.
Comme indiqué ci-dessous :
<applet codebase="http://amrood.com/applets" code="HelloWorldApplet.class" width="320" height="120">
Si l'Applet se trouve dans un package autre que le package par défaut, le package doit être spécifié dans l'attribut code, par exemple :
<applet code="mypackage.subpackage.TestApplet.class"
width="320" height="120">
Obtention des paramètres d'Applet
L'exemple suivant montre comment une Applet répond aux paramètres spécifiés dans un fichier. L'Applet affiche un motif en damier noir et une seconde couleur.
La deuxième couleur et la taille de chaque colonne sont spécifiées via les paramètres de l'Applet dans le document.
CheckerApplet obtient ses paramètres dans la méthode init(). Il peut également obtenir ses paramètres dans la méthode paint(). Cependant, il est pratique et efficace pour l'Applet d'obtenir les valeurs au démarrage et d'enregistrer les réglages, plutôt que d'obtenir les valeurs à chaque rafraîchissement.
Le visualiseur d'Applet ou le navigateur appelle la méthode init() chaque fois que l'Applet s'exécute. Après avoir chargé l'Applet, le visualiseur appelle immédiatement la méthode init() (Applet.init() ne fait rien). Redéfinissez l'implémentation par défaut de cette méthode pour ajouter du code d'initialisation personnalisé.
La méthode Applet.getParameter() obtient la valeur du paramètre par le nom du paramètre. Si la valeur obtenue est un nombre ou une autre donnée non caractère, elle doit être analysée à partir du type chaîne.
L'exemple suivant est une modification de CheckerApplet.java :
Code du fichier CheckerApplet.java :
Voici la méthode init() et la méthode privée parseSquareSize() de la classe CheckerApplet :
L'applet appelle parseSquareSize() pour analyser le paramètre squareSize. parseSquareSize() appelle la méthode de bibliothèque Integer.parseInt(), qui convertit une chaîne en un entier. Lorsque le paramètre est invalide, Integer.parseInt() lève une exception.
Par conséquent, la méthode parseSquareSize() intercepte également les exceptions et ne permet pas à l'Applet d'accepter une entrée non valide.
L'Applet appelle la méthode parseColor() pour analyser le paramètre de couleur en une valeur Color. La méthode parseColor() effectue une série de comparaisons de chaînes pour faire correspondre la valeur du paramètre à des noms de couleurs prédéfinis. Vous devez implémenter ces méthodes pour que l'Applet fonctionne.
Spécification des paramètres d'applet
L'exemple suivant est un fichier HTML qui intègre la classe CheckerApplet. Le fichier HTML spécifie deux paramètres pour l'applet à l'aide de la balise <param>.
Remarque :Les noms de paramètres sont insensibles à la casse.
Conversion d'une application en applet
Convertir une application Java graphique (c'est-à-dire une application qui utilise AWT et qui est lancée avec le lanceur de programmes java) en une applet intégrée dans une page web est simple.
Voici les étapes pour convertir une application en une Applet :
- Écrivez une page HTML qui contient une balise pouvant charger le code de l'applet.
- Écrivez une sous-classe de la classe JApplet et rendez la classe publique. Sinon, l'Applet ne peut pas être chargée.
- Supprimez la méthode main() de l'application. Ne construisez pas de fenêtre frame pour l'application, car votre application doit être affichée dans le navigateur.
- Déplacez le code d'initialisation du constructeur de la fenêtre frame dans l'application vers la méthode init() de l'Applet. Vous n'avez pas besoin de construire explicitement l'objet Applet ; le navigateur instanciera un objet en appelant la méthode init().
- Supprimez l'appel à la méthode setSize(). Pour une Applet, la taille est déjà définie par les paramètres width et height dans le fichier HTML.
- Supprimez l'appel à la méthode setDefaultCloseOperation(). Une Applet ne peut pas être fermée ; elle se termine lorsque le navigateur se ferme.
- Si l'application appelle la méthode setTitle(), supprimez cet appel. Une applet ne peut pas avoir de barre de titre. (Bien sûr, vous pouvez nommer la page web elle-même à l'aide de la balise HTML <title>.)
- N'appelez pas setVisible(true) ; l'Applet s'affiche automatiquement.
Gestion des événements
La classe Applet hérite de nombreuses méthodes de gestion des événements de la classe Container. La classe Container définit plusieurs méthodes, telles que processKeyEvent() et processMouseEvent(), pour gérer des types spécifiques d'événements, ainsi qu'une méthode d'événement générique appelée processEvent.
Pour répondre à un événement, l'Applet doit redéfinir la méthode de gestion d'événement appropriée.
Code du fichier ExampleEventHandling.java :
Invoquez l'Applet comme suit :
Lors de sa première exécution, l'Applet affiche "initializing the applet. Starting the applet." Puis, dès que vous cliquez sur le rectangle, elle affiche "mouse clicked".
Affichage des images
Une Applet peut afficher des images aux formats GIF, JPEG, BMP et autres. Pour afficher une image dans une Applet, vous devez utiliser la méthode drawImage() de la classe java.awt.Graphics.
L'exemple suivant montre toutes les étapes pour afficher une image :
Code du fichier ImageDemo.java :
Invoquez l'applet comme suit :
Lecture audio
Une applet peut lire de l'audio en utilisant l'interface AudioClip du package java.applet. L'interface AudioClip définit trois méthodes :
- public void play():Lire le clip audio une fois depuis le début.
- public void loop(): Lire le clip audio en boucle.
- public void stop(): Arrêter la lecture du clip audio.
Pour obtenir un objet AudioClip, vous devez appeler la méthode getAudioClip() de la classe Applet. Cette méthode retourne immédiatement, que l'URL pointe ou non vers un fichier audio réel.
Le fichier audio n'est téléchargé que lorsqu'il est sur le point d'être lu.
L'exemple suivant illustre toutes les étapes de la lecture audio :
Code du fichier AudioDemo.java :
Invoquez l'applet comme suit :
Vous pouvez utiliser test.wav sur votre ordinateur pour tester l'exemple ci-dessus.
Autres extensions