- Importez d'abord toutes les classes des package java.awt et java.applet
- Créer la classe NervousText qui dérive de Applet et qui implémente Runnable.
Ici, cela va nous permettre de créer un thread (un processus). Sans ce thread, la boucle d'attente
utilisée pour que l'animation ne soit pas trop rapide monopoliserait toutes les ressources,
même l'affichage, et rien ne se passerait. Le thread permet de faire du "multi-tâches".
Utilisez le mot implements en mettant implements Runnable à la fin de l'en-tête de l'applet.
- Ajoutez les données suivantes : une chaine de caractère texte (initialisée à null),
un tableau de char separated, un booleen threadSuspended (initialisée à false)
et une référence à la classe Thread appelée runner (initialisée à null).
- Ajoutez la méthode init qui redéfinit init de la classe Applet.
Celle-ci doit récupérer (méthode getParameter) le paramètre TEXT passé dans le code HTML et
le mettre dans texte. Créer ensuite le tableau de char dans separated
de taille la longueur de texte. Copiez ensuite chaque caractère
de texte dans separated (vous pouvez
utiliser texte.getChars(0, texte.length(), separated,0);
Rajoutez ensuite le code suivant :
resize((texte.length()+1)*15, 50);
setFont(new Font("TimesRoman", Font.BOLD, 36));
setBackground(Color.white);
(Rajouter des commentaires pour expliquer ce que fait chaque commande)
- Rajoutez les deux méthodes suivantes qui contrôlent le démarrage et l'arrêt du
thread (et donc de l'animation) :
public void start() {
if (runner == null) {
runner = new Thread(this);
runner.start();
}
}
public void stop() {
runner = null;
}
- La méthode run est le coeur de l'applet. C'est là que nous allons mettre la boucle d'attente.
Créez la méthode public void run() dans laquelle vous allez mettre une
boucle while avec pour condition runner != null.
Dans cette boucle mettez le code suivant :
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
pour endormir l'exécution pendant 100 ms. Vous devez utilisez une
structure try car le thread peut lancer l'exception InterruptedException.
Ajoutez aussi repaint(); pour redessiner l'applet.
- Enfin, ajoutez la méthode paint avec g.setColor(Color.blue); pour
choisir la couleur de dessin et la boucle for allant de 0 à texte.length() avec le corps suivant :
int x = (int) (Math.random()*10+15*i);
int y = (int) (Math.random()*10+36);
// Dessine le ième caractère aux positions indiquées
g.drawChars(separated, i, 1, x, y);
- Maintenant, regardez le code source de cette page.