Bonjour,

Je cherche à créer un classe complexe drawable. Pour cela, il me semble qu'il faut implémeter une interface Shape. Mais je n'y arrive pas. (précision : je travaille avec java1.5 par obligation - cela m'est imposé. D'après le tuto de sun, cela semble plus simple avec 1.6)

Voici mon code, si quelqu'un voit mon erreur ou mes oublis...

1ère classe : cercle implémenté Shape, l'objet que je voudrai pouvoir dessiner avec un draw
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package ObjetPrDessiner;
 
import java.awt.geom.Ellipse2D;
import java.awt.geom.Point2D;
 
public class Cercle implements Shape  {
	private double radius;
	private Ellipse2D.Double circle;
	private Point2D.Double centreCercle;
 
	public Cercle(Point2D.Double control){
		centreCercle = control;
		radius = 50;
	}
	public void draw() {
	      circle = new Ellipse2D.Double(centreCercle.x - radius, centreCercle.y - radius, 2.0 * radius,
	              2.0 * radius);
	}
}
2e fichier : l'interface Shape

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
public interface Shape {
	public void draw();
}
3e fichier : le panel où dessiner le cercle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Point2D;
import javax.swing.JPanel;
 
public class DessinerCercle extends JPanel{
	private Point2D.Double centreC;
	private Cercle cercle1;
	/** espace graphique pour le dessin */
	private Graphics2D g2D;
	/** epaisseur des traits  */
	private BasicStroke bs;
 
	public DessinerCercle(Point2D.Double centre){
		// création des variables
		centreC = centre;
		init();
 
	}
	// création du cercle
	public void init(){
		cercle1 = new Cercle(centreC);
		bs = new BasicStroke(2,BasicStroke.CAP_SQUARE,BasicStroke.JOIN_ROUND);				
	}
	// dessin
	public void paint(Graphics g){
		g2D = (Graphics2D) g;
		g2D.setColor (Color.red);
		g2D.setStroke(bs);
		g2D.drawLine((int)centreC.x -50,(int) centreC.y, (int)centreC.x +50, (int)centreC.y);
    	g2D.draw(cercle1);		
	}
 
}
*** c'est "g2D.draw(cercle1);" qui n'est pas reconnu

Merci de votre aide