| 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.
| Cette section vous intéresse ? Abonnez-vous ! |
|