Une applet est un programme Java qui s'exécute dans un navigateur Web. Une applet peut être une application Java entièrement fonctionnelle car elle dispose de l'intégralité de l'API Java.
Il existe des différences importantes entre une applet et une application Java autonome, notamment les suivantes −
Une applet est une classe Java qui étend la classe java.applet.Applet.
Une méthode main() n'est pas invoquée sur une applet et une classe d'applet ne définira pas main().
Les applets sont conçues pour être intégrées dans une page HTML.
Lorsqu'un utilisateur affiche une page HTML contenant une applet, le code de l'applet est téléchargé sur la machine de l'utilisateur.
Une JVM est nécessaire pour afficher une applet. La JVM peut être soit un plug-in du navigateur Web, soit un environnement d'exécution distinct.
La JVM sur la machine de l'utilisateur crée une instance de la classe applet et invoque diverses méthodes pendant la durée de vie de l'applet.
Les applets ont des règles de sécurité strictes qui sont appliquées par le navigateur Web. La sécurité d'une applet est souvent appelée sécurité du bac à sable, comparant l'applet à un enfant jouant dans un bac à sable avec diverses règles qui doivent être suivies.
Les autres classes dont l'applet a besoin peuvent être téléchargées dans un seul fichier Java Archive (JAR).
Quatre méthodes de la classe Applet vous donnent le cadre sur lequel vous construisez n'importe quelle applet sérieuse −
initier − Cette méthode est destinée à toute initialisation nécessaire pour votre applet. Il est appelé après que les balises param à l'intérieur de la balise applet ont été traitées.
commencer − Cette méthode est automatiquement appelée après que le navigateur a appelé la méthode init. Elle est également appelée chaque fois que l'utilisateur revient sur la page contenant l'applet après être allé sur d'autres pages.
arrêter − Cette méthode est automatiquement appelée lorsque l'utilisateur quitte la page sur laquelle se trouve l'applet. Il peut donc être appelé plusieurs fois dans la même applet.
détruire − Cette méthode n'est appelée que lorsque le navigateur se ferme normalement. Étant donné que les applets sont destinées à vivre sur une page HTML, vous ne devez normalement pas laisser de ressources derrière vous après qu'un utilisateur a quitté la page contenant l'applet.
peinture − Invoquée immédiatement après la méthode start(), et aussi chaque fois que l'applet a besoin de se redessiner dans le navigateur. La méthode paint() est en fait héritée du java.awt.
Voici une applet simple nommée HelloWorldApplet.java −
import java.applet.*; import java.awt.*; public class HelloWorldApplet extends Applet { public void paint (Graphics g) { g.drawString ("Hello World", 25, 50); } }
Ces instructions d'importation amènent les classes dans la portée de notre classe d'applet −
Sans ces instructions d'importation, le compilateur Java ne reconnaîtrait pas les classes Applet et Graphics, auxquelles la classe applet fait référence.
Chaque applet est une extension de la classe java.applet.Applet . La classe Applet de base fournit des méthodes qu'une classe Applet dérivée peut appeler pour obtenir des informations et des services à partir du contexte du navigateur.
Celles-ci incluent des méthodes qui font ce qui suit −
De plus, la classe Applet fournit une interface par laquelle le visualiseur ou le navigateur obtient des informations sur l'applet et contrôle l'exécution de l'applet. Le spectateur peut −
La classe Applet fournit des implémentations par défaut de chacune de ces méthodes. Ces implémentations peuvent être remplacées si nécessaire.
L'applet "Hello, World" est complet tel quel. La seule méthode remplacée est la méthode de peinture.
Une applet peut être appelée en incorporant des directives dans un fichier HTML et en visualisant le fichier via un visualiseur d'applet ou un navigateur compatible Java.
La balise est la base de l'intégration d'une applet dans un fichier HTML. Voici un exemple qui invoque l'applet "Hello, World" − <html> <title>The Hello, World Applet</title> <hr> <applet code = "HelloWorldApplet.class" width = "320" height = "120"> If your browser was Java-enabled, a "Hello, World" message would appear here. </applet> <hr> </html> Remarque − Vous pouvez vous référer à HTML Applet Tag pour en savoir plus sur l'appel d'applet à partir de HTML. L'attribut code de la balise est obligatoire. Il spécifie la classe Applet à exécuter. La largeur et la hauteur sont également requises pour spécifier la taille initiale du panneau dans lequel une applet s'exécute. La directive applet doit être fermée par une balise . Si une applet prend des paramètres, des valeurs peuvent être passées pour les paramètres en ajoutant des balises entre et . Le navigateur ignore le texte et les autres balises entre les balises de l'applet. Les navigateurs non compatibles Java ne traitent pas et . Par conséquent, tout ce qui apparaît entre les balises, sans rapport avec l'applet, est visible dans les navigateurs non compatibles Java. Le visualiseur ou le navigateur recherche le code Java compilé à l'emplacement du document. Pour spécifier le contraire, utilisez l'attribut codebase de la balise comme indiqué − <applet codebase = "https://amrood.com/applets" code = "HelloWorldApplet.class" width = "320" height = "120"> Si une applet réside dans un package autre que celui par défaut, le package de stockage doit être spécifié dans l'attribut code à l'aide du caractère point (.) pour séparer les composants package/classe. Par exemple − <applet = "mypackage.subpackage.TestApplet.class" width = "320" height = "120"> Obtenir les paramètres de l'applet L'exemple suivant montre comment faire en sorte qu'une applet réponde aux paramètres de configuration spécifiés dans le document. Cette applet affiche un motif en damier noir et une seconde couleur. La deuxième couleur et la taille de chaque carré peuvent être spécifiées en tant que 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, obtenir les valeurs et enregistrer les paramètres une seule fois au démarrage de l'applet, plutôt qu'à chaque actualisation, est pratique et efficace. Le visualiseur d'applet ou le navigateur appelle la méthode init() de chaque applet qu'il exécute. Le visualiseur appelle init() une fois, immédiatement après avoir chargé l'applet. (Applet.init() est implémenté pour ne rien faire.) Remplacez l'implémentation par défaut pour insérer un code d'initialisation personnalisé. La méthode Applet.getParameter() récupère un paramètre en fonction du nom du paramètre (la valeur d'un paramètre est toujours une chaîne). Si la valeur est numérique ou autre donnée non alphanumérique, la chaîne doit être analysée. Ce qui suit est un squelette de CheckerApplet.java − import java.applet.*; import java.awt.*; public class CheckerApplet extends Applet { int squareSize = 50; // initialized to default size public void init() {} private void parseSquareSize (String param) {} private Color parseColor (String param) {} public void paint (Graphics g) {} } Voici les méthodes init() et private parseSquareSize() de CheckerApplet − public void init () { String squareSizeParam = getParameter ("squareSize"); parseSquareSize (squareSizeParam); String colorParam = getParameter ("color"); Color fg = parseColor (colorParam); setBackground (Color.black); setForeground (fg); } private void parseSquareSize (String param) { if (param == null) return; try { squareSize = Integer.parseInt (param); } catch (Exception e) { // Let default value remain } } L'applet appelle parseSquareSize() pour analyser le paramètre squareSize. parseSquareSize() appelle la méthode de bibliothèque Integer.parseInt(), qui analyse une chaîne et renvoie un entier. Integer.parseInt() lève une exception chaque fois que son argument est invalide. Par conséquent, parseSquareSize() intercepte les exceptions, plutôt que de permettre à l'applet d'échouer sur une mauvaise entrée. L'applet appelle parseColor() pour analyser le paramètre color en une valeur Color. parseColor() effectue une série de comparaisons de chaînes pour faire correspondre la valeur du paramètre au nom d'une couleur prédéfinie. Vous devez implémenter ces méthodes pour que cette applet fonctionne. Spécification des paramètres de l'applet Voici un exemple de fichier HTML avec un CheckerApplet intégré. Le fichier HTML spécifie les deux paramètres à l'applet au moyen de la balise . <html> <title>Checkerboard Applet</title> <hr> <applet code = "CheckerApplet.class" width = "480" height = "320"> <param name = "color" value = "blue"> <param name = "squaresize" value = "30"> </applet> <hr> </html> Remarque − Les noms de paramètres ne sont pas sensibles à la casse. Conversion d'applications en applets Il est facile de convertir une application Java graphique (c'est-à-dire une application qui utilise l'AWT et que vous pouvez démarrer avec le lanceur de programme Java) en une applet que vous pouvez intégrer dans une page Web. Voici les étapes spécifiques pour convertir une application en applet. Créez une page HTML avec la balise appropriée pour charger le code de l'applet. Fournissez une sous-classe de la classe JApplet. Rendre cette classe publique. Sinon, l'applet ne peut pas être chargée. Éliminer la méthode principale dans l'application. Ne construisez pas de fenêtre frame pour l'application. Votre application sera affichée dans le navigateur. Déplacez tout code d'initialisation du constructeur de fenêtre frame vers la méthode init de l'applet. Vous n'avez pas besoin de construire explicitement l'objet applet. Le navigateur l'instancie pour vous et appelle la méthode init. Supprimez l'appel à setSize ; pour les applets, le dimensionnement se fait avec les paramètres largeur et hauteur du fichier HTML. Supprimez l'appel à setDefaultCloseOperation. Une applet ne peut pas être fermée; il se termine lorsque le navigateur se ferme. Si l'application appelle setTitle, éliminez l'appel à la méthode. Les applets ne peuvent pas avoir de barres de titre. (Vous pouvez, bien sûr, donner un titre à la page Web elle-même, en utilisant la balise de titre HTML.) N'appelez pas setVisible(true). L'applet s'affiche automatiquement. Gestion des événements Les applets héritent d'un groupe de méthodes de gestion d'événements de la classe Container. La classe Container définit plusieurs méthodes, telles que processKeyEvent et processMouseEvent, pour gérer des types particuliers d'événements, puis une méthode fourre-tout appelée processEvent. Afin de réagir à un événement, une applet doit remplacer la méthode appropriée spécifique à l'événement. import java.awt.event.MouseListener; import java.awt.event.MouseEvent; import java.applet.Applet; import java.awt.Graphics; public class ExampleEventHandling extends Applet implements MouseListener { StringBuffer strBuffer; public void init() { addMouseListener(this); strBuffer = new StringBuffer(); addItem("initializing the apple "); } public void start() { addItem("starting the applet "); } public void stop() { addItem("stopping the applet "); } public void destroy() { addItem("unloading the applet"); } void addItem(String word) { System.out.println(word); strBuffer.append(word); repaint(); } public void paint(Graphics g) { // Draw a Rectangle around the applet's display area. g.drawRect(0, 0, getWidth() - 1, getHeight() - 1); // display the string inside the rectangle. g.drawString(strBuffer.toString(), 10, 20); } public void mouseEntered(MouseEvent event) { } public void mouseExited(MouseEvent event) { } public void mousePressed(MouseEvent event) { } public void mouseReleased(MouseEvent event) { } public void mouseClicked(MouseEvent event) { addItem("mouse clicked! "); } } Maintenant, appelons cette applet comme suit − <html> <title>Event Handling</title> <hr> <applet code = "ExampleEventHandling.class" width = "300" height = "300"> </applet> <hr> </html> Initialement, l'applet affichera "initialisation de l'applet. Démarrage de l'applet." Ensuite, une fois que vous aurez cliqué à l'intérieur du rectangle, "clic de la souris" s'affichera également. Afficher des images Une applet peut afficher des images au format GIF, JPEG, BMP et autres. Pour afficher une image dans l'applet, vous utilisez la méthode drawImage() trouvée dans la classe java.awt.Graphics. Voici un exemple illustrant toutes les étapes pour afficher des images − import java.applet.*; import java.awt.*; import java.net.*; public class ImageDemo extends Applet { private Image image; private AppletContext context; public void init() { context = this.getAppletContext(); String imageURL = this.getParameter("image"); if(imageURL == null) { imageURL = "java.jpg"; } try { URL url = new URL(this.getDocumentBase(), imageURL); image = context.getImage(url); } catch (MalformedURLException e) { e.printStackTrace(); // Display in browser status bar context.showStatus("Could not load image!"); } } public void paint(Graphics g) { context.showStatus("Displaying image"); g.drawImage(image, 0, 0, 200, 84, null); g.drawString("www.javalicense.com", 35, 100); } } Maintenant, appelons cette applet comme suit − <html> <title>The ImageDemo applet</title> <hr> <applet code = "ImageDemo.class" width = "300" height = "200"> <param name = "image" value = "java.jpg"> </applet> <hr> </html> Lecture audio Une applet peut lire un fichier audio représenté par l'interface AudioClip dans le package java.applet. L'interface AudioClip a trois méthodes, y compris − jeu vide public() − Lit le clip audio une fois, depuis le début. boucle vide publique() − Provoque la lecture continue du clip audio. arrêt d'annulation publique() − Arrête la lecture du clip audio. Pour obtenir un objet AudioClip, vous devez invoquer la méthode getAudioClip() de la classe Applet. La méthode getAudioClip() revient immédiatement, que l'URL se résolve ou non en un fichier audio réel. Le fichier audio n'est pas téléchargé tant qu'une tentative de lecture du clip audio n'est pas effectuée. Voici un exemple illustrant toutes les étapes pour lire un fichier audio − import java.applet.*; import java.awt.*; import java.net.*; public class AudioDemo extends Applet { private AudioClip clip; private AppletContext context; public void init() { context = this.getAppletContext(); String audioURL = this.getParameter("audio"); if(audioURL == null) { audioURL = "default.au"; } try { URL url = new URL(this.getDocumentBase(), audioURL); clip = context.getAudioClip(url); } catch (MalformedURLException e) { e.printStackTrace(); context.showStatus("Could not load audio file!"); } } public void start() { if(clip != null) { clip.loop(); } } public void stop() { if(clip != null) { clip.stop(); } } } Maintenant, appelons cette applet comme suit − <html> <title>The ImageDemo applet</title> <hr> <applet code = "ImageDemo.class" width = "0" height = "0"> <param name = "audio" value = "test.wav"> </applet> <hr> </html> Vous pouvez utiliser test.wav sur votre PC pour tester l'exemple ci-dessus. Java – Multithreading Java - Commentaires sur la documentation Java Langue C VHDL Verilog MATLAB Python Java Opérateurs Java Commentaires Java Java pour chaque boucle Chaînes Java InterfaceJava Classe anonyme Java Java essayer avec des ressources Annotations Java Assertions Java Interface de file d'attente Java Interface de file dattente Java Dans ce didacticiel, nous allons découvrir linterface Java Queue et ses méthodes. Le Queue Linterface du framework de collections Java fournit la fonctionnalité de la structure de données de la file dattente. Il étend le Collection interface. Classes qui implémente Interface Java Deque Interface Java Deque Dans ce didacticiel, nous découvrirons linterface Deque, son utilisation et ses méthodes. Le Deque Linterface du framework de collections Java fournit la fonctionnalité dune file dattente à double extrémité. Il étend le Queue interface. Travail de Deque Dans une file dattent Liste liée Java Liste liée Java Dans ce didacticiel, nous allons en savoir plus sur Java LinkedList à laide dexemples. Le LinkedList La classe du framework de collections Java fournit la fonctionnalité de la structure de données de liste liée (liste doublement liée). Chaque élément dune liste liée est appelé nœ Concepts de POO en Java | Qu'est-ce que c'est, les bases avec des exemples Quest-ce que lOOPS ? Système de programmation orienté objet (POO) est un concept de programmation qui fonctionne sur les principes dabstraction, dencapsulation, dhéritage et de polymorphisme. Il permet aux utilisateurs de créer les objets quils veulent et de créer des méthodes pour gérer ces objets
<html> <title>The Hello, World Applet</title> <hr> <applet code = "HelloWorldApplet.class" width = "320" height = "120"> If your browser was Java-enabled, a "Hello, World" message would appear here. </applet> <hr> </html>
Remarque − Vous pouvez vous référer à HTML Applet Tag pour en savoir plus sur l'appel d'applet à partir de HTML.
L'attribut code de la balise est obligatoire. Il spécifie la classe Applet à exécuter. La largeur et la hauteur sont également requises pour spécifier la taille initiale du panneau dans lequel une applet s'exécute. La directive applet doit être fermée par une balise .
Si une applet prend des paramètres, des valeurs peuvent être passées pour les paramètres en ajoutant des balises entre et . Le navigateur ignore le texte et les autres balises entre les balises de l'applet.
Les navigateurs non compatibles Java ne traitent pas et . Par conséquent, tout ce qui apparaît entre les balises, sans rapport avec l'applet, est visible dans les navigateurs non compatibles Java.
Le visualiseur ou le navigateur recherche le code Java compilé à l'emplacement du document. Pour spécifier le contraire, utilisez l'attribut codebase de la balise comme indiqué − <applet codebase = "https://amrood.com/applets" code = "HelloWorldApplet.class" width = "320" height = "120"> Si une applet réside dans un package autre que celui par défaut, le package de stockage doit être spécifié dans l'attribut code à l'aide du caractère point (.) pour séparer les composants package/classe. Par exemple − <applet = "mypackage.subpackage.TestApplet.class" width = "320" height = "120"> Obtenir les paramètres de l'applet L'exemple suivant montre comment faire en sorte qu'une applet réponde aux paramètres de configuration spécifiés dans le document. Cette applet affiche un motif en damier noir et une seconde couleur. La deuxième couleur et la taille de chaque carré peuvent être spécifiées en tant que 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, obtenir les valeurs et enregistrer les paramètres une seule fois au démarrage de l'applet, plutôt qu'à chaque actualisation, est pratique et efficace. Le visualiseur d'applet ou le navigateur appelle la méthode init() de chaque applet qu'il exécute. Le visualiseur appelle init() une fois, immédiatement après avoir chargé l'applet. (Applet.init() est implémenté pour ne rien faire.) Remplacez l'implémentation par défaut pour insérer un code d'initialisation personnalisé. La méthode Applet.getParameter() récupère un paramètre en fonction du nom du paramètre (la valeur d'un paramètre est toujours une chaîne). Si la valeur est numérique ou autre donnée non alphanumérique, la chaîne doit être analysée. Ce qui suit est un squelette de CheckerApplet.java − import java.applet.*; import java.awt.*; public class CheckerApplet extends Applet { int squareSize = 50; // initialized to default size public void init() {} private void parseSquareSize (String param) {} private Color parseColor (String param) {} public void paint (Graphics g) {} } Voici les méthodes init() et private parseSquareSize() de CheckerApplet − public void init () { String squareSizeParam = getParameter ("squareSize"); parseSquareSize (squareSizeParam); String colorParam = getParameter ("color"); Color fg = parseColor (colorParam); setBackground (Color.black); setForeground (fg); } private void parseSquareSize (String param) { if (param == null) return; try { squareSize = Integer.parseInt (param); } catch (Exception e) { // Let default value remain } } L'applet appelle parseSquareSize() pour analyser le paramètre squareSize. parseSquareSize() appelle la méthode de bibliothèque Integer.parseInt(), qui analyse une chaîne et renvoie un entier. Integer.parseInt() lève une exception chaque fois que son argument est invalide. Par conséquent, parseSquareSize() intercepte les exceptions, plutôt que de permettre à l'applet d'échouer sur une mauvaise entrée. L'applet appelle parseColor() pour analyser le paramètre color en une valeur Color. parseColor() effectue une série de comparaisons de chaînes pour faire correspondre la valeur du paramètre au nom d'une couleur prédéfinie. Vous devez implémenter ces méthodes pour que cette applet fonctionne. Spécification des paramètres de l'applet Voici un exemple de fichier HTML avec un CheckerApplet intégré. Le fichier HTML spécifie les deux paramètres à l'applet au moyen de la balise . <html> <title>Checkerboard Applet</title> <hr> <applet code = "CheckerApplet.class" width = "480" height = "320"> <param name = "color" value = "blue"> <param name = "squaresize" value = "30"> </applet> <hr> </html> Remarque − Les noms de paramètres ne sont pas sensibles à la casse. Conversion d'applications en applets Il est facile de convertir une application Java graphique (c'est-à-dire une application qui utilise l'AWT et que vous pouvez démarrer avec le lanceur de programme Java) en une applet que vous pouvez intégrer dans une page Web. Voici les étapes spécifiques pour convertir une application en applet. Créez une page HTML avec la balise appropriée pour charger le code de l'applet. Fournissez une sous-classe de la classe JApplet. Rendre cette classe publique. Sinon, l'applet ne peut pas être chargée. Éliminer la méthode principale dans l'application. Ne construisez pas de fenêtre frame pour l'application. Votre application sera affichée dans le navigateur. Déplacez tout code d'initialisation du constructeur de fenêtre frame vers la méthode init de l'applet. Vous n'avez pas besoin de construire explicitement l'objet applet. Le navigateur l'instancie pour vous et appelle la méthode init. Supprimez l'appel à setSize ; pour les applets, le dimensionnement se fait avec les paramètres largeur et hauteur du fichier HTML. Supprimez l'appel à setDefaultCloseOperation. Une applet ne peut pas être fermée; il se termine lorsque le navigateur se ferme. Si l'application appelle setTitle, éliminez l'appel à la méthode. Les applets ne peuvent pas avoir de barres de titre. (Vous pouvez, bien sûr, donner un titre à la page Web elle-même, en utilisant la balise de titre HTML.) N'appelez pas setVisible(true). L'applet s'affiche automatiquement. Gestion des événements Les applets héritent d'un groupe de méthodes de gestion d'événements de la classe Container. La classe Container définit plusieurs méthodes, telles que processKeyEvent et processMouseEvent, pour gérer des types particuliers d'événements, puis une méthode fourre-tout appelée processEvent. Afin de réagir à un événement, une applet doit remplacer la méthode appropriée spécifique à l'événement. import java.awt.event.MouseListener; import java.awt.event.MouseEvent; import java.applet.Applet; import java.awt.Graphics; public class ExampleEventHandling extends Applet implements MouseListener { StringBuffer strBuffer; public void init() { addMouseListener(this); strBuffer = new StringBuffer(); addItem("initializing the apple "); } public void start() { addItem("starting the applet "); } public void stop() { addItem("stopping the applet "); } public void destroy() { addItem("unloading the applet"); } void addItem(String word) { System.out.println(word); strBuffer.append(word); repaint(); } public void paint(Graphics g) { // Draw a Rectangle around the applet's display area. g.drawRect(0, 0, getWidth() - 1, getHeight() - 1); // display the string inside the rectangle. g.drawString(strBuffer.toString(), 10, 20); } public void mouseEntered(MouseEvent event) { } public void mouseExited(MouseEvent event) { } public void mousePressed(MouseEvent event) { } public void mouseReleased(MouseEvent event) { } public void mouseClicked(MouseEvent event) { addItem("mouse clicked! "); } } Maintenant, appelons cette applet comme suit − <html> <title>Event Handling</title> <hr> <applet code = "ExampleEventHandling.class" width = "300" height = "300"> </applet> <hr> </html> Initialement, l'applet affichera "initialisation de l'applet. Démarrage de l'applet." Ensuite, une fois que vous aurez cliqué à l'intérieur du rectangle, "clic de la souris" s'affichera également. Afficher des images Une applet peut afficher des images au format GIF, JPEG, BMP et autres. Pour afficher une image dans l'applet, vous utilisez la méthode drawImage() trouvée dans la classe java.awt.Graphics. Voici un exemple illustrant toutes les étapes pour afficher des images − import java.applet.*; import java.awt.*; import java.net.*; public class ImageDemo extends Applet { private Image image; private AppletContext context; public void init() { context = this.getAppletContext(); String imageURL = this.getParameter("image"); if(imageURL == null) { imageURL = "java.jpg"; } try { URL url = new URL(this.getDocumentBase(), imageURL); image = context.getImage(url); } catch (MalformedURLException e) { e.printStackTrace(); // Display in browser status bar context.showStatus("Could not load image!"); } } public void paint(Graphics g) { context.showStatus("Displaying image"); g.drawImage(image, 0, 0, 200, 84, null); g.drawString("www.javalicense.com", 35, 100); } } Maintenant, appelons cette applet comme suit − <html> <title>The ImageDemo applet</title> <hr> <applet code = "ImageDemo.class" width = "300" height = "200"> <param name = "image" value = "java.jpg"> </applet> <hr> </html> Lecture audio Une applet peut lire un fichier audio représenté par l'interface AudioClip dans le package java.applet. L'interface AudioClip a trois méthodes, y compris − jeu vide public() − Lit le clip audio une fois, depuis le début. boucle vide publique() − Provoque la lecture continue du clip audio. arrêt d'annulation publique() − Arrête la lecture du clip audio. Pour obtenir un objet AudioClip, vous devez invoquer la méthode getAudioClip() de la classe Applet. La méthode getAudioClip() revient immédiatement, que l'URL se résolve ou non en un fichier audio réel. Le fichier audio n'est pas téléchargé tant qu'une tentative de lecture du clip audio n'est pas effectuée. Voici un exemple illustrant toutes les étapes pour lire un fichier audio − import java.applet.*; import java.awt.*; import java.net.*; public class AudioDemo extends Applet { private AudioClip clip; private AppletContext context; public void init() { context = this.getAppletContext(); String audioURL = this.getParameter("audio"); if(audioURL == null) { audioURL = "default.au"; } try { URL url = new URL(this.getDocumentBase(), audioURL); clip = context.getAudioClip(url); } catch (MalformedURLException e) { e.printStackTrace(); context.showStatus("Could not load audio file!"); } } public void start() { if(clip != null) { clip.loop(); } } public void stop() { if(clip != null) { clip.stop(); } } } Maintenant, appelons cette applet comme suit − <html> <title>The ImageDemo applet</title> <hr> <applet code = "ImageDemo.class" width = "0" height = "0"> <param name = "audio" value = "test.wav"> </applet> <hr> </html> Vous pouvez utiliser test.wav sur votre PC pour tester l'exemple ci-dessus. Java – Multithreading Java - Commentaires sur la documentation Java Langue C VHDL Verilog MATLAB Python Java Opérateurs Java Commentaires Java Java pour chaque boucle Chaînes Java InterfaceJava Classe anonyme Java Java essayer avec des ressources Annotations Java Assertions Java Interface de file d'attente Java Interface de file dattente Java Dans ce didacticiel, nous allons découvrir linterface Java Queue et ses méthodes. Le Queue Linterface du framework de collections Java fournit la fonctionnalité de la structure de données de la file dattente. Il étend le Collection interface. Classes qui implémente Interface Java Deque Interface Java Deque Dans ce didacticiel, nous découvrirons linterface Deque, son utilisation et ses méthodes. Le Deque Linterface du framework de collections Java fournit la fonctionnalité dune file dattente à double extrémité. Il étend le Queue interface. Travail de Deque Dans une file dattent Liste liée Java Liste liée Java Dans ce didacticiel, nous allons en savoir plus sur Java LinkedList à laide dexemples. Le LinkedList La classe du framework de collections Java fournit la fonctionnalité de la structure de données de liste liée (liste doublement liée). Chaque élément dune liste liée est appelé nœ Concepts de POO en Java | Qu'est-ce que c'est, les bases avec des exemples Quest-ce que lOOPS ? Système de programmation orienté objet (POO) est un concept de programmation qui fonctionne sur les principes dabstraction, dencapsulation, dhéritage et de polymorphisme. Il permet aux utilisateurs de créer les objets quils veulent et de créer des méthodes pour gérer ces objets
<applet codebase = "https://amrood.com/applets" code = "HelloWorldApplet.class" width = "320" height = "120">
Si une applet réside dans un package autre que celui par défaut, le package de stockage doit être spécifié dans l'attribut code à l'aide du caractère point (.) pour séparer les composants package/classe. Par exemple −
<applet = "mypackage.subpackage.TestApplet.class" width = "320" height = "120">
L'exemple suivant montre comment faire en sorte qu'une applet réponde aux paramètres de configuration spécifiés dans le document. Cette applet affiche un motif en damier noir et une seconde couleur.
La deuxième couleur et la taille de chaque carré peuvent être spécifiées en tant que 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, obtenir les valeurs et enregistrer les paramètres une seule fois au démarrage de l'applet, plutôt qu'à chaque actualisation, est pratique et efficace.
Le visualiseur d'applet ou le navigateur appelle la méthode init() de chaque applet qu'il exécute. Le visualiseur appelle init() une fois, immédiatement après avoir chargé l'applet. (Applet.init() est implémenté pour ne rien faire.) Remplacez l'implémentation par défaut pour insérer un code d'initialisation personnalisé.
La méthode Applet.getParameter() récupère un paramètre en fonction du nom du paramètre (la valeur d'un paramètre est toujours une chaîne). Si la valeur est numérique ou autre donnée non alphanumérique, la chaîne doit être analysée.
Ce qui suit est un squelette de CheckerApplet.java −
import java.applet.*; import java.awt.*; public class CheckerApplet extends Applet { int squareSize = 50; // initialized to default size public void init() {} private void parseSquareSize (String param) {} private Color parseColor (String param) {} public void paint (Graphics g) {} }
Voici les méthodes init() et private parseSquareSize() de CheckerApplet −
public void init () { String squareSizeParam = getParameter ("squareSize"); parseSquareSize (squareSizeParam); String colorParam = getParameter ("color"); Color fg = parseColor (colorParam); setBackground (Color.black); setForeground (fg); } private void parseSquareSize (String param) { if (param == null) return; try { squareSize = Integer.parseInt (param); } catch (Exception e) { // Let default value remain } }
L'applet appelle parseSquareSize() pour analyser le paramètre squareSize. parseSquareSize() appelle la méthode de bibliothèque Integer.parseInt(), qui analyse une chaîne et renvoie un entier. Integer.parseInt() lève une exception chaque fois que son argument est invalide.
Par conséquent, parseSquareSize() intercepte les exceptions, plutôt que de permettre à l'applet d'échouer sur une mauvaise entrée.
L'applet appelle parseColor() pour analyser le paramètre color en une valeur Color. parseColor() effectue une série de comparaisons de chaînes pour faire correspondre la valeur du paramètre au nom d'une couleur prédéfinie. Vous devez implémenter ces méthodes pour que cette applet fonctionne.
Voici un exemple de fichier HTML avec un CheckerApplet intégré. Le fichier HTML spécifie les deux paramètres à l'applet au moyen de la balise .
<html> <title>Checkerboard Applet</title> <hr> <applet code = "CheckerApplet.class" width = "480" height = "320"> <param name = "color" value = "blue"> <param name = "squaresize" value = "30"> </applet> <hr> </html>
Remarque − Les noms de paramètres ne sont pas sensibles à la casse.
Il est facile de convertir une application Java graphique (c'est-à-dire une application qui utilise l'AWT et que vous pouvez démarrer avec le lanceur de programme Java) en une applet que vous pouvez intégrer dans une page Web.
Voici les étapes spécifiques pour convertir une application en applet.
Créez une page HTML avec la balise appropriée pour charger le code de l'applet.
Fournissez une sous-classe de la classe JApplet. Rendre cette classe publique. Sinon, l'applet ne peut pas être chargée.
Éliminer la méthode principale dans l'application. Ne construisez pas de fenêtre frame pour l'application. Votre application sera affichée dans le navigateur.
Déplacez tout code d'initialisation du constructeur de fenêtre frame vers la méthode init de l'applet. Vous n'avez pas besoin de construire explicitement l'objet applet. Le navigateur l'instancie pour vous et appelle la méthode init.
Supprimez l'appel à setSize ; pour les applets, le dimensionnement se fait avec les paramètres largeur et hauteur du fichier HTML.
Supprimez l'appel à setDefaultCloseOperation. Une applet ne peut pas être fermée; il se termine lorsque le navigateur se ferme.
Si l'application appelle setTitle, éliminez l'appel à la méthode. Les applets ne peuvent pas avoir de barres de titre. (Vous pouvez, bien sûr, donner un titre à la page Web elle-même, en utilisant la balise de titre HTML.)
N'appelez pas setVisible(true). L'applet s'affiche automatiquement.
Les applets héritent d'un groupe de méthodes de gestion d'événements de la classe Container. La classe Container définit plusieurs méthodes, telles que processKeyEvent et processMouseEvent, pour gérer des types particuliers d'événements, puis une méthode fourre-tout appelée processEvent.
Afin de réagir à un événement, une applet doit remplacer la méthode appropriée spécifique à l'événement.
import java.awt.event.MouseListener; import java.awt.event.MouseEvent; import java.applet.Applet; import java.awt.Graphics; public class ExampleEventHandling extends Applet implements MouseListener { StringBuffer strBuffer; public void init() { addMouseListener(this); strBuffer = new StringBuffer(); addItem("initializing the apple "); } public void start() { addItem("starting the applet "); } public void stop() { addItem("stopping the applet "); } public void destroy() { addItem("unloading the applet"); } void addItem(String word) { System.out.println(word); strBuffer.append(word); repaint(); } public void paint(Graphics g) { // Draw a Rectangle around the applet's display area. g.drawRect(0, 0, getWidth() - 1, getHeight() - 1); // display the string inside the rectangle. g.drawString(strBuffer.toString(), 10, 20); } public void mouseEntered(MouseEvent event) { } public void mouseExited(MouseEvent event) { } public void mousePressed(MouseEvent event) { } public void mouseReleased(MouseEvent event) { } public void mouseClicked(MouseEvent event) { addItem("mouse clicked! "); } }
Maintenant, appelons cette applet comme suit −
<html> <title>Event Handling</title> <hr> <applet code = "ExampleEventHandling.class" width = "300" height = "300"> </applet> <hr> </html>
Initialement, l'applet affichera "initialisation de l'applet. Démarrage de l'applet." Ensuite, une fois que vous aurez cliqué à l'intérieur du rectangle, "clic de la souris" s'affichera également.
Une applet peut afficher des images au format GIF, JPEG, BMP et autres. Pour afficher une image dans l'applet, vous utilisez la méthode drawImage() trouvée dans la classe java.awt.Graphics.
Voici un exemple illustrant toutes les étapes pour afficher des images −
import java.applet.*; import java.awt.*; import java.net.*; public class ImageDemo extends Applet { private Image image; private AppletContext context; public void init() { context = this.getAppletContext(); String imageURL = this.getParameter("image"); if(imageURL == null) { imageURL = "java.jpg"; } try { URL url = new URL(this.getDocumentBase(), imageURL); image = context.getImage(url); } catch (MalformedURLException e) { e.printStackTrace(); // Display in browser status bar context.showStatus("Could not load image!"); } } public void paint(Graphics g) { context.showStatus("Displaying image"); g.drawImage(image, 0, 0, 200, 84, null); g.drawString("www.javalicense.com", 35, 100); } }
<html> <title>The ImageDemo applet</title> <hr> <applet code = "ImageDemo.class" width = "300" height = "200"> <param name = "image" value = "java.jpg"> </applet> <hr> </html>
Une applet peut lire un fichier audio représenté par l'interface AudioClip dans le package java.applet. L'interface AudioClip a trois méthodes, y compris −
jeu vide public() − Lit le clip audio une fois, depuis le début.
boucle vide publique() − Provoque la lecture continue du clip audio.
arrêt d'annulation publique() − Arrête la lecture du clip audio.
Pour obtenir un objet AudioClip, vous devez invoquer la méthode getAudioClip() de la classe Applet. La méthode getAudioClip() revient immédiatement, que l'URL se résolve ou non en un fichier audio réel. Le fichier audio n'est pas téléchargé tant qu'une tentative de lecture du clip audio n'est pas effectuée.
Voici un exemple illustrant toutes les étapes pour lire un fichier audio −
import java.applet.*; import java.awt.*; import java.net.*; public class AudioDemo extends Applet { private AudioClip clip; private AppletContext context; public void init() { context = this.getAppletContext(); String audioURL = this.getParameter("audio"); if(audioURL == null) { audioURL = "default.au"; } try { URL url = new URL(this.getDocumentBase(), audioURL); clip = context.getAudioClip(url); } catch (MalformedURLException e) { e.printStackTrace(); context.showStatus("Could not load audio file!"); } } public void start() { if(clip != null) { clip.loop(); } } public void stop() { if(clip != null) { clip.stop(); } } }
<html> <title>The ImageDemo applet</title> <hr> <applet code = "ImageDemo.class" width = "0" height = "0"> <param name = "audio" value = "test.wav"> </applet> <hr> </html>
Vous pouvez utiliser test.wav sur votre PC pour tester l'exemple ci-dessus.
Java
Interface de file dattente Java Dans ce didacticiel, nous allons découvrir linterface Java Queue et ses méthodes. Le Queue Linterface du framework de collections Java fournit la fonctionnalité de la structure de données de la file dattente. Il étend le Collection interface. Classes qui implémente
Interface Java Deque Dans ce didacticiel, nous découvrirons linterface Deque, son utilisation et ses méthodes. Le Deque Linterface du framework de collections Java fournit la fonctionnalité dune file dattente à double extrémité. Il étend le Queue interface. Travail de Deque Dans une file dattent
Liste liée Java Dans ce didacticiel, nous allons en savoir plus sur Java LinkedList à laide dexemples. Le LinkedList La classe du framework de collections Java fournit la fonctionnalité de la structure de données de liste liée (liste doublement liée). Chaque élément dune liste liée est appelé nœ
Quest-ce que lOOPS ? Système de programmation orienté objet (POO) est un concept de programmation qui fonctionne sur les principes dabstraction, dencapsulation, dhéritage et de polymorphisme. Il permet aux utilisateurs de créer les objets quils veulent et de créer des méthodes pour gérer ces objets