Dans cette fiche...

<Retour>

Description de l'applet

Difficulté : Résultat
En consultant l'exemple précédent, on constate que chaque l'objet Ellipse n'a pas de couleur propre (la couleur doit être définie par l'applet, avant le tracé).

On va améliorer ça !

Votre navigateur n'est pas compatible Java !

Il suffit de créer une nouvelle propriété couleur dans l'objet, et de modifier quelques méthodes de cet objet.

Listing de l'applet

// -------------------------------------------------------
// APPLETELLIPSECOULEUR : UTILISATION DE L'OBJET "ELLIPSE"
// -------------------------------------------------------
import java.applet.*;
import java.awt.*;
// L'applet principale
public class AppletEllipseCouleur extends Applet
{
	// Déclaration des objets
	Ellipse3 e1, e2, e3;
	// Initialisation de l'applet
	public void init()
	{
		// Initialisation des ellipses
		e1 = new Ellipse3(100, 50, 75, 20);
		e2 = new Ellipse3(150, 70);
		e3 = new Ellipse3(40, 70, 20, 30, Color.red);
		// Couleur de fond de l'applet
		setBackground(Color.black);
	}
	// Tracé de l'applet
	public void paint(Graphics g)
	{
		// Déplacer la 1ère ellipse (pourquoi pas ?!)
		e1.deplacer(10, 15);
		// Tracer la 1ère ellipse avec fond transparent
		e1.tracerEllipse(g);
		// Tracer les autres ellipses avec fond opaque
		e2.remplirEllipse(g);
		e3.remplirEllipse(g);
	}
}
// L'objet a utiliser
class Ellipse3 extends Object
{
	int x, y;		// Coordonnées du centre de l'ellipse
	int largeur, hauteur;	// Dimensions de l'ellipse
	Color couleur;		// Couleur de l'ellipse
	// Constructeur de l'objet
	public Ellipse3(int xx, int yy, int ll, int hh)
	{
		x = xx;
		y = yy;
		largeur = ll;
		hauteur = hh;
		couleur = Color.white;
	}
	// Autre constructeur
	public Ellipse3(int xx, int yy)
	{
		x = xx;
		y = yy;
		largeur = 50;
		hauteur = 20;
		couleur = Color.white;
	}
	// 3ème constructeur, gérant la couleur
	public Ellipse3(int xx, int yy, int ll, int hh, Color c)
	{
		x = xx;
		y = yy;
		largeur = ll;
		hauteur = hh;
		couleur = c;
	}
	// Méthode pour déplacer l'ellipse
	public void deplacer(int dx, int dy)
	{
		x += dx;
		y += dy;
	}
	// Méthode pour tracer l'ellipse avec un fond transparent
	public void tracerEllipse(Graphics g)
	{
		g.setColor(couleur);
		g.drawOval(x - largeur/2, y - hauteur/2, largeur, hauteur);
	}
	// Méthode pour tracer l'ellipse avec un fond opaque
	public void remplirEllipse(Graphics g)
	{
		g.setColor(couleur);
		g.fillOval(x - largeur/2, y - hauteur/2, largeur, hauteur);
	}
}

Le listing en détail...

Pas de grandes nouveautés par rapport au listing précédent :

Color couleur;
Dans le bas du listing : le nouvel objet Ellipse3 contient cette fois une propriété (une variable) couleur, de type Color.
 
// 3ème constructeur, gérant la couleur
public Ellipse3(int xx, int yy, int ll, int hh, Color c)
{
	x = xx;
	y = yy;
	largeur = ll;
	hauteur = hh;
	couleur = c;
}
On a ajouté un 3ème constructeur d'objet, qui permet de définir une couleur dès le départ.
Ce constructeur est appelé dans le listing principal par :
e3 = new Ellipse3(40, 70, 20, 30, Color.red);

Vous constaterez que les autres constructeurs ont également été aménagés pour définir une couleur par défaut (le blanc).

 
// Méthode pour tracer l'ellipse avec un fond transparent
public void tracerEllipse(Graphics g)
{
	g.setColor(couleur);
	g.drawOval(x - largeur/2, y - hauteur/2, largeur, hauteur);
}
A chaque fois qu'on trace l'ellipse, on définit au préalable sa couleur. L'objet appelant (notre applet AppletEllipseCouleur) n'a donc plus à se soucier de la couleur de l'ellipse au moment du tracé.

De même dans la méthode remplirEllipse().

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 code="AppletEllipseCouleur.class" width=250 height=90>
Votre navigateur n'est pas compatible Java !
</applet>

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