Une classe qui étend Carre et implémente Tracable                        

Une classe qui étend Carre et implémente Tracable

           

La classe CarreGraphique ressemble à la classe CercleGraphique .
La classe est munie de deux constructeurs, utilisant ainsi le principe de la surcharge.
Le mot réservé this est utilisé à plusieurs reprises, avec des usages un peu différents.

import java.awt.Color;
import java.awt.Graphics;

super class CarreGraphique extends Carre implements Tracable {
   //x et y : coordonnees du centre
   private int x, y;
   private Color couleur = Color.black;

   public CarreGraphique(int cote, int x, int y, Color couleur) {
      super(cote);
      this.x = x;
      this.y = y;
      this.couleur = couleur;
   }

   public CarreGraphique(int cote, int x, int y) {
      this(cote, x, y, Color.BLACK);
   }

   public void dessine(Graphics g) {
	int cote = getCote();

        if (cote < DIM_MAX) {
	   g.setColor(couleur);
           g.drawRect(x - cote / 2, y - cote / 2, cote, cote);
      }
  }
}

Pour accéder au programme.


super(cote) : on fait ainsi appel au constructeur de la classe Carre qu'étend CarreGraphique.
this.x : l'attribut x de la classe CarreGraphique
this(cote, x, y, Color.BLACK) : on fait ainsi appel au constructeur de la classe CarreGraphique ayant quatre paramètres de type int et un de type Color ; Color.BLACK est une constante de la classe Color donnant la couleur noire.
g.drawRect(x - cote / 2, y - cote / 2, cote, cote); : on dessine ainsi un rectangle ; le premier paramètre donne l'abscisse du coin supérieur gauche, le deuxième paramètre donne l'ordonnée du coin supérieur gauche en partant du coin supérieur gauche du panneau dans lequel on dessine et avec un axe vertical dirigé vers le bas, les deux derniers paramètres donnent les dimensions horizontales et verticales du rectangle (on obtient ici un carré puisque ces deux dimensions sont égales).

© Irène Charon Télécom ParisTech 2010