Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Java

Les Applets Java : Bases et différences clés

Une applet est un programme Java qui s'exécute dans un navigateur Web. Une applet peut être une application Java pleinement fonctionnelle car elle dispose de l'ensemble de l'API Java.

Voici les différences importantes entre une applet et une application Java autonome :

Cycle de vie d'une applet

Quatre méthodes de la classe Applet fournissent le cadre pour construire toute applet sérieuse :

Applet « Hello, World »

import java.applet.*;
import java.awt.*;

public class HelloWorldApplet extends Applet {
    public void paint(Graphics g) {
        g.drawString("Hello World", 25, 50);
    }
}

Les imports nécessaires : java.applet.Applet et java.awt.Graphics.

La classe Applet

Toute applet étend java.applet.Applet. La classe de base fournit des méthodes pour :

Le navigateur peut aussi : demander des infos sur l'auteur/version/copyright, initialiser, détruire, démarrer ou arrêter l'applet.

Invoquer une applet

On intègre une applet via la balise <applet> dans un fichier HTML :

<html>
<title>L'applet Hello, World</title>
<hr>
<applet code="HelloWorldApplet.class" width="320" height="120">
Si votre navigateur supportait Java, "Hello, World" apparaîtrait ici.
</applet>
<hr>
</html>

L'attribut code est obligatoire (classe à exécuter). width et height définissent la taille initiale. La balise doit être fermée par </applet>.

Pour passer des paramètres, ajoutez des balises <param> entre <applet> et </applet>.

Si l'applet réside dans un package, précisez-le dans code : monpackage.souspackage.MonApplet.class.

Récupérer les paramètres de l'applet

Exemple avec CheckerApplet qui affiche un damier. La couleur et la taille des cases sont des paramètres.

import java.applet.*;
import java.awt.*;

public class CheckerApplet extends Applet {
    int squareSize = 50;
    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) { /* garde la valeur par défaut */ }
    }
    private Color parseColor(String param) { /* implémentation */ }
    public void paint(Graphics g) { /* dessin du damier */ }
}

Spécifier les paramètres dans le HTML

<html>
<title>Applet Damier</title>
<hr>
<applet code="CheckerApplet.class" width="480" height="320">
<param name="color" value="blue">
<param name="squaresize" value="30">
</applet>
<hr>
</html>

Note : Les noms de paramètres ne sont pas sensibles à la casse.

Conversion d'application en applet

Étapes pour convertir une application graphique Java (AWT) en applet :

  1. Créer une page HTML avec la balise appropriée.
  2. Fournir une sous-classe publique de JApplet.
  3. Supprimer la méthode main et ne pas construire de fenêtre (Frame).
  4. Déplacer le code d'initialisation du constructeur vers init().
  5. Supprimer setSize() (la taille vient du HTML).
  6. Supprimer setDefaultCloseOperation() (l'applet se termine avec le navigateur).
  7. Supprimer setTitle() (pas de barre de titre).
  8. Ne pas appeler setVisible(true) (affichage automatique).

Gestion des événements

Les applets héritent des méthodes de gestion d'événements de Container. Pour réagir à un événement, surchargez la méthode appropriée.

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("initialisation de l'applet ");
    }
    public void start() { addItem("démarrage de l'applet "); }
    public void stop() { addItem("arrêt de l'applet "); }
    public void destroy() { addItem("déchargement de l'applet"); }
    void addItem(String word) {
        System.out.println(word);
        strBuffer.append(word);
        repaint();
    }
    public void paint(Graphics g) {
        g.drawRect(0, 0, getWidth() - 1, getHeight() - 1);
        g.drawString(strBuffer.toString(), 10, 20);
    }
    public void mouseClicked(MouseEvent event) { addItem("clic souris ! "); }
    public void mouseEntered(MouseEvent e) {}
    public void mouseExited(MouseEvent e) {}
    public void mousePressed(MouseEvent e) {}
    public void mouseReleased(MouseEvent e) {}
}

Affichage d'images

Utilisez drawImage() de java.awt.Graphics pour afficher GIF, JPEG, BMP, etc.

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();
            context.showStatus("Impossible de charger l'image !");
        }
    }
    public void paint(Graphics g) {
        context.showStatus("Affichage de l'image");
        g.drawImage(image, 0, 0, 200, 84, null);
        g.drawString("www.exemple.com", 35, 100);
    }
}

Lecture audio

L'interface AudioClip (package java.applet) offre trois méthodes :

Obtenez un AudioClip via getAudioClip() de la classe Applet.

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("Impossible de charger le fichier audio !");
        }
    }
    public void start() { if (clip != null) clip.loop(); }
    public void stop() { if (clip != null) clip.stop(); }
}

Appel HTML (applet invisible, width=0 height=0) :

<html>
<title>Applet Audio</title>
<hr>
<applet code="AudioDemo.class" width="0" height="0">
<param name="audio" value="test.wav">
</applet>
<hr>
</html>

Java

  1. Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
  2. Commentaires Java : Types, utilisation et bonnes pratiques
  3. Maîtriser la boucle for améliorée en Java : Syntaxe, exemples et bonnes pratiques
  4. Maîtriser les chaînes de caractères en Java : Création, méthodes et bonnes pratiques
  5. Maîtriser les interfaces Java : concepts, implémentation et bonnes pratiques
  6. Maîtriser les classes internes anonymes en Java : définition, syntaxe et exemples pratiques
  7. Maîtriser le try-with-resources Java : gestion automatique des ressources expliquée
  8. Annotations Java expliquées : types, placement et exemples pratiques
  9. Assertions Java : guide pratique pour détecter les bugs et assurer la fiabilité du code