Dans cette fiche... |
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 ! |
Il suffit de créer une nouvelle propriété couleur dans l'objet, et de modifier quelques méthodes de cet objet.
// ------------------------------------------------------- // 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); } }
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(). |
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.