La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Package traçable Tatiana Aubonnet.

Présentations similaires


Présentation au sujet: "Package traçable Tatiana Aubonnet."— Transcription de la présentation:

1 Package traçable Tatiana Aubonnet

2 L’interface Tracable package tracable;
public interface Tracable {     public static final int DIM_MAX = 500;     public void dessiner(java.awt.Graphics g); }

3 Une classe pour définir un Cercle
La classe Cercle nous servira de superclasse. l’utilisation de la constante statique PI issue de la classe java.lang.Math. package tracable; public class Cercle {     int rayon;     public Cercle(int rayon) {         this.rayon = rayon;     }     public int getRayon() {         return rayon;     }    double circonference() {         return 2 * Math.PI * rayon;     } }

4 Une classe qui étend Cercle et implémente l'interface Tracable
package tracable; public class CercleGraphique extends Cercle implements Tracable {     private int x, y;                   // x et y : coordonnees du centre du cercle     private java.awt.Color couleur;     // couleur : la couleur du cercle     public CercleGraphique(int rayon, int x, int y, java.awt.Color couleur) {         super(rayon);         this.x = x;         this.y = y;         this.couleur = couleur;     }     public void dessiner(java.awt.Graphics g) {         int rayon = getRayon();         if (rayon < DIM_MAX) {             g.setColor(couleur);             g.drawOval(x - rayon, y - rayon, 2*rayon, 2*rayon);         }     } }

5 Une classe pour définir un carré
Elle sera étendue en une classe implémentant l’interface Tracable et permettra d’avoir deux classes différentes implémentant Tracable. package tracable; public class Carre {     private int cote;     public Carre(int cote) {         this.cote = cote;     }     public int getCote() {         return cote;     }     public int surface() {         return cote*cote;     } }

6 Une classe qui étend Carre et implémente Tracable
package tracable; import java.awt.Color; import java.awt.Graphics; public class CarreGraphique extends Carre implements Tracable { private int x, y; //coordonnees du centre private Color couleur = Color.BLACK; // couleur par défaut du carre public CarreGraphique(int cote, int x, int y) { super(cote); this.x = x; this.y = y; } public CarreGraphique(int cote, int x, int y, Color couleur) { this(cote, x, y); this.couleur = couleur; } public void dessiner(Graphics g) { int cote = getCote(); if (cote < DIM_MAX) { g.setColor(couleur); g.drawRect(x - cote/2, y - cote/2, cote, cote); } } }

7 Un tableau de Tracable l’exemple suivant : on construit un tableau de Tracable pour les différents ingrédients d’un dessin qu’on souhaite obtenir ; la méthode dessiner, spécifiée dans Tracable, est appliquée sur chacune des instances du tableau. package tracable; import java.awt.Graphics; import java.awt.Color; import java.awt.Dimension; import javax.swing.JPanel; import javax.swing.JFrame; public class EssaiTracable extends JPanel {     Tracable[] desFormes = new Tracable[5];     public EssaiTracable() {         setPreferredSize(new Dimension(200, 200));         desFormes[0] = new CercleGraphique(75, 100, 100, Color.BLACK);         desFormes[1] = new CercleGraphique(10, 65, 75, Color.BLUE);         desFormes[2] = new CercleGraphique(10, 135, 75, Color.BLUE);         desFormes[3] = new CarreGraphique(10, 100, 110, Color.MAGENTA);         desFormes[4] = new CarreGraphique(15, 100, 150, Color.RED);     }     public void paintComponent(Graphics g) {         super.paintComponent(g);         for (Tracable forme : desFormes) forme.dessiner(g);     }     public static void main(String[] arg) {         JFrame monDessin = new JFrame();         monDessin.setContentPane(new EssaiTracable());         monDessin.pack();         monDessin.setVisible(true);     } }


Télécharger ppt "Package traçable Tatiana Aubonnet."

Présentations similaires


Annonces Google