Travaux pratiques en Java
Séance 5: Les Applets
Najib Tounsi
Une applet est un petit programme java qui s'exécute dans un navigateur. L'appel à une applet se fait daonc dans une page HTML (balises <applet></applet>
ou <object></object>). On peut aussi visualiser une applet par le programme appletviewer disponible avec les plateforme java.
1. Applets Bonjour.
Exemple 1: Une applet simple qui affiche un message
import java.applet.Applet;
import java.awt.Graphics;
public class HelloWorld extends Applet {
public void paint(Graphics g) {
g.drawString("Hello world!", 50, 25);
}
};
Compiler normalement avec javac HelloWorld.java.
Créer le fichier HTML HelloWorld.html suivant:
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head><title> Une simple applet </title></head>
<body>
<applet code="HelloWorld.class" width=200 height=100>
</applet>
</body>
</html>
La valeur de l'attribut code de la balise applet est le nom du fichier compilé HelloWorld.class correpondant à l'applet à lancer. On visualise l'applet dans un
navigateur Web ou par le programme appletviewer.
appletviewer HelloWorld.html
Résultat:
Noter...
Exemple 2: Une applet simple qui affiche un message avec décorations
import java.applet.Applet;
import java.awt.*; // on utilise toutes les classes du package
public class HelloWorld extends Applet {
public void paint(Graphics g) {
g.setColor(Color.red); //couleur de la fonte
int x = getSize().width; //largeur de la zone d'affichage
int y = getSize().height; //taille de la zone d'affichage
g.drawRect(0, 0, x - 1, y - 1); // on entoure la zone par un rectangle
g.setFont(new Font("Monotype Corsiva", Font.PLAIN, 24));
g.drawString("Hello world!", x/4, y/2);
}
};
Résultat:
Noter...
Exemple 3: Une applete simple qui affiche un message en Arabe
import java.awt.*;
import java.applet.Applet;
public class Salamate extends Applet {
public void paint(Graphics g){
char[] salam = new char[5];
salam[0]=1587; // lettre Sin en Unicode
salam[1]=1604; // lettre lam
salam[2]=1605; // lettre mim
salam[3]=1575; // lettre alif
salam[4]=1578; // lettre tah
g.setFont(new Font("Traditional Arabic", Font.PLAIN, 25));
g.drawString(String.valueOf(salam), 20, 20);
}
}
Résultat:
Noter...
Exemple 4: Une applete simple qui affiche un message bidirectionnel ar/fr. L'arabe s'affichant de droite à gauche (right-to-left ou RTL). Java aplique
l'algorithme bidirectionnel d'Unicode.
import java.awt.*;
import java.applet.Applet;
public class Salamate extends Applet {
public void paint(Graphics g){
char[] salam = new char[5];
salam[0]=1587; // lettre Sin en Unicode
salam[1]=1604; // lettre lam
salam[2]=1605; // lettre mim
salam[3]=1575; // lettre alif
salam[4]=1578; // lettre tah
g.setFont(new Font("Traditional Arabic", Font.PLAIN, 25));
char[] yah = {1610,1575};
g.drawString(String.valueOf(salam) + " " +
String.valueOf(yah) +
" ali" + " baba ", 10, 45);
}
}
Résultat:
Noter:
La différence entre l'ordre du texte en mémoire (l'ordre de saisie des caractères, dit ordre logique,) et l'ordre du texte affiché (ordre visuel). En notant
en majuscule les mots arabes :
1.
ordre physique en mémoire: SALMATE YA ali baba
ordre logique d'affichage: ali baba AY ETAMLAS
En outre, il y a deux notions à voir: le contexte globle d'affichage d'une texte bidi, et le passage directionnel (séquence de direction fixe). Ici, le contexte
globale est aussi RTL:
2.
ali baba AY ETAMLAS
---ltr---> <---rtl---- deux passages directionnels différents, LTR et RTL
<----- r t l --------- contexte globale d'affichage (ordre de lecture orale) est RTL
En remplaçant maintenant l'instruction g.drawString(...) précédente par (la chaîne commençant en français):
g.drawString("Hello " + String.valueOf(salam) + " " +
String.valueOf(yah) +
" ali" + " baba ", 10, 45);
on obtient :
où le contexte globale est cette fois-ci ltr.
Hello AY ETAMLAS ali baba
----> <---------- ---------> trois passages directionnels différents
------------ l t r ----------> le contexte globale d'affichage LTR
2. Applet complète.
Voici maintenant une applet plus complète avec les méthodes init(), start(), paint(), stop(), destroy(). L'effet est d'afficher un message qui permet de suivre la
thrace d'exécution de l'applet.
Version 1: affichage dans la zone de l'applet elle même.
import java.applet.Applet;
import java.awt.*;
public class TraceApplet extends Applet {
StringBuffer message; // message a afficher
public void start() {
message.append(" starting");
}
public void init(){
message = new StringBuffer(100);
message.append( " initializing");
}
public void stop() {
message.append(" stoping");
}
public void destroy() {
message.append( " destroying");
}
public void paint(Graphics g){
message.append(" painting") ;
g.drawString(message.toString(), 10, 20);
}
}
Compiler et lancer l'applet. La réduire ensuite en icone, la rétablir, l'aggrandir, la couvrir et l'arrêter. Noter qu'avec destroy, le message n'est pas visible.
1 / 6 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !