Dessin ligne et Polygon

soniahilali - 1 juin 2013 à 08:59
 soniahilali - 3 juin 2013 à 19:11
Bonjour, je suis entraine d'implementer les evenements MouseListener et MouseMotionListener. j'ai travaille avec java swing. je reussi de dessiner un rectangle et le faire deplacer mais quand je n'ai essayée de refaire le mm travaille pour une ligne ou bien Polygon. donnez-moi l'aide svp voici le code d'un rectangle .
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.List;
import java.awt.Point;
import java.awt.Polygon;
import java.awt.Rectangle;
import java.awt.geom.Line2D;
import java.util.ArrayList;

import javax.swing.*;

public class Element implements Forme {

private Rectangle rect;

public boolean isSelectionned = true;

private Canvas canvas = null;
private Rectangle modifier;


public Element(Rectangle rect2, Canvas canvas) {
super();
this.rect = rect2;

this.canvas = canvas;



modifier = new Rectangle(0,0,d,d);

setPosition(new Point(200,200));
}

@Override
public void draw(Graphics2D g) {

Color c = g.getColor();
g.fillRect(rect.x, rect.y, rect.width, rect.height);


g.setColor(Color.black);


if(isSelectionned)
g.setColor(Color.red);
else
g.setColor(Color.black);

g.drawRect(rect.x, rect.y, rect.width, rect.height);






if(isSelectionned) {
g.setColor(Color.red);
g.fillRect(modifier.x, modifier.y, modifier.width, modifier.height);

}

g.setColor(c);

}

@Override
public Rectangle getRect() {
// TODO Auto-generated method stub
return (Rectangle) rect.clone();
}

@Override
public void setRect(Rectangle rect) {
// TODO Auto-generated method stub
this.rect = rect;
}
public Point centre()
{
return null;

}
public Point getPosition() {
Point p = new Point();
p.x = rect.x + rect.width / 2;
p.y = rect.y + rect.height /2;
return p;
}


private int d = 5;
public void setPosition(Point p) {
rect.x = p.x - rect.width /2;
rect.y = p.y - rect.height /2;


modifier.x = rect.x + rect.width;
modifier.y = rect.y - d;



}

public boolean modifiable(Point p) {
return modifier.contains(p);
}

private int tailleMin = 120;

public void redimensionner(Point cible) {
if(cible.x < rect.x + rect.width) {
rect.width -= Math.abs(cible.x - (rect.x+rect.width));
} else {
rect.width += Math.abs(cible.x - (rect.x+rect.width));
}

if(cible.y < rect.y) {
rect.height += Math.abs(cible.y - rect.y);
} else {
rect.height -= Math.abs(cible.y - rect.y);
}

rect.y = cible.y;
setPosition(getPosition());




}

@Override
public Line2D getLine() {
// TODO Auto-generated method stub
return null;
}

@Override
public void setLine(Line2D Line) {
// TODO Auto-generated method stub

}

@Override
public Polygon getPol() {
// TODO Auto-generated method stub
return null;
}

@Override
public void setPol(Polygon Poly) {
// TODO Auto-generated method stub

}

}
svp m'aider de refaire cette travaille concernant la dessin d'un ligne et un polygon et merci d'avance

2 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
2 juin 2013 à 08:54
Salut,

Essayes d'utiliser les balises qui permettent de coloriser le code.

Il te suffit de remplacer g.drawRect(rect.x, rect.y, rect.width, rect.height);

par un g.drawPolygon(new Polygon(...)) et ca va fonctionner
0
salut, oui c vrai mais mon problème c'est au niveau de setPol() et getPoly()
void setPos(Point p) {
centre du polygone = p
}
Point getPos() {
return centre(polygone);
}
quelqu'un peut me donner le code en java et merci.
0
Rejoignez-nous