Dans cette fiche...

<Retour>

Description de l'applet

Difficulté : Résultat
Comme dans la fiche précédente, des boutons Javascript permettent de changer la couleur de l'applet.

Cette fois, tous les boutons fonctionnent. La technique employée est un peu différente...

Votre navigateur n'est pas compatible Java !

Listing de l'applet

// --------------------------------------------
// JSCOULEURS2 : INTERACTION JAVASCRIPT/JAVA
// --------------------------------------------
import java.applet.*;
import java.awt.*;
public class JSCouleurs2 extends Applet
{
	public String couleur;
	// Initialisation de l'applet
	public void init()
	{
		// Couleur de fond : noir
		setBackground(Color.black);
		// Couleur de départ
		couleur = "blanc";
	}
	// Dessin de l'applet
	public void paint(Graphics g)
	{
		int i;
		// Couleur par défaut (blanc)
		g.setColor(Color.white);
		// Autres couleurs (si la variable couleur a été modifiée)
		if (couleur.equalsIgnoreCase("jaune")) g.setColor(Color.yellow);
		if (couleur.equalsIgnoreCase("rouge")) g.setColor(Color.red);
		if (couleur.equalsIgnoreCase("vert"))  g.setColor(Color.green);
		// Ecrire le texte
		g.drawString("Les couleurs de ce texte peuvent être", 10, 30);
		g.drawString("modifiées via JavaScript.", 10, 45);
	}
	
	// Modification de la couleur
	// Cette fonction est appelée par JavaScript
	public void ChangerCouleur(String s)
	{
		couleur = s;
		// Forcer le retraçage de l'applet
		repaint();
	}
}

Le listing en détail...

Les lignes non commentées ont déjà été traitées dans les exemples précédents.

public void ChangerCouleur(String s)
{
	couleur = s;
	// Forcer le retraçage de l'applet
	repaint();
}
Cette fois, la variable couleur ne sera pas modifiée directement par Javascript. A la place, on écrit une fonction (déclarée public pour être visible depuis Javascript). Cette fonction recevra une chaîne s (transmise par Javascript), l'affectera à la variable couleur, et enfin provoquera un appel de la méthode repaint(), pour redessiner l'applet, et donc faire apparaître les changements.

Et cette fois ça marche !

Rappel : void indique que la fonction ne renvoie pas de valeur.

Intégration de l'applet dans la page

Voici le code qui a été utilisé dans cette page HTML pour faire apparaître l'applet :

<applet name="Couleurs" code="JSCouleurs2.class" width=250 height=90>
Votre navigateur n'est pas compatible Java !
</applet>

Notez le name="Couleurs" qui permet de nommer l'applet au niveau de la page HTML. Celle-ci sera ainsi reconnue par Javascript.

Pour plus de précisions sur l'intégration d'une applet, cliquez ici.

Mise en place du formulaire

Voici le code utilisé pour créer les boutons Javascript, qui modifient l'objet couleur, de l'applet nommée elle-même Couleurs.

<form>
	<input type="button" name="BoutonRouge" value="Rouge"
		onclick="document.Couleurs.ChangerCouleur('rouge');">
	<input type="button" name="BoutonVert" value="Vert" 
		onclick="document.Couleurs.ChangerCouleur('vert');">
	<input type="button" name="BoutonJaune" value="Jaune" 
		onclick="document.Couleurs.ChangerCouleur('jaune');">
	<input type="button" name="BoutonBlanc" value="Blanc"
		onclick="document.Couleurs.ChangerCouleur('blanc');">
</form>