you could also use AffineTransform.getTranslateInstance(x,y) to get an AffineTransform, then use createTransformedShape() on your Shape...
doesn't that do the job? > -----Original Message----- > From: Discussion list for Java 2D API > [mailto:[EMAIL PROTECTED] On Behalf Of "Jan > Bösenberg (INCORS GmbH)" > Sent: Monday, October 23, 2006 11:56 AM > To: [EMAIL PROTECTED] > Subject: Re: [JAVA2D] Moving Shape > > > You could implement this with a class like this: > > > public class ShapeObject implements Shape { > private final Shape shape; > private float x = 0; > private float y = 0; > > public ShapeObject(Shape shape) { > this.shape = shape; > } > > public float getX() { > return x; > } > > public void setX(float x) { > this.x = x; > } > > public float getY() { > return y; > } > > public void setY(float y) { > this.y = y; > } > > public boolean *contains*(double x, double y) { > return shape.contains(x - this.x, y - this.y); > } > > public Rectangle2D *getBounds2D*() { > Rectangle2D bounds2D = shape.getBounds2D(); > bounds2D.setRect(bounds2D.getX() + x, bounds2D.getY() + > y, bounds2D.getWidth(), bounds2D.getHeight()); > return bounds2D; > } > > public PathIterator *getPathIterator*(AffineTransform at) { > AffineTransform at2 = new AffineTransform(at); > at2.translate(x, y); > return shape.getPathIterator(at2); > } > > > // You have to implement the other Shape methods yourself > > > } > > > This class is more or less all you need. Put each of your > shapes into a ShapeObject class and move the ShapeObjects > around using the setX() and > setY() methods. > > BTW, the questions was not too stupid to be answered, but > most people have quite a lot to do so answers sometimes take > a bit longer or never come. > > > Cheers > Jan > > > > > > Danilo Costa wrote: > > > No body has any idea? Or is the question too much stupid to be > > answered? > > > > On 10/22/06, *Danilo Costa* <[EMAIL PROTECTED] > > <mailto:[EMAIL PROTECTED]>> wrote: > > > > I think it is a dummy question, but I cant find its > answer easily. > > > > I have a collection of Shapes that are rendered in a > canvas and I > > have to let the user to interact with it, dragging it. > > I've found this example > > http://java.sun.com/docs/books/tutorial/2d/display/user.html > > called Shape mover, but actually it works only with Rectangle > > class, which has convenient methods for that, such as > setLocation > > and translate. I am wondering why Shape interface does > not define > > those methods? How can I implement such methods when I > am working > > with generic shapes? Any help is appreciate. > > > > Tahanks > > Danilo > > -- > > "...YOU CANNOT KNOW THE MEANING OF YOUR LIFE UNTIL YOU ARE > > CONNECTED WITH THE POWER THAT CREATED YOU..." > > Shri Mataji Nirmala Devi > > > > > > > > > > -- > > "...YOU CANNOT KNOW THE MEANING OF YOUR LIFE UNTIL YOU ARE > CONNECTED > > WITH THE POWER THAT CREATED YOU..." Shri Mataji Nirmala Devi > > > ============================================================== > ============= > > To unsubscribe, send email to [EMAIL PROTECTED] and > include in the > > body of the message "signoff JAVA2D-INTEREST". For general > help, send > > email to [EMAIL PROTECTED] and include in the body of > the message > > "help". > > ============================================================== > ============= > To unsubscribe, send email to [EMAIL PROTECTED] and > include in the body of the message "signoff JAVA2D-INTEREST". > For general help, send email to [EMAIL PROTECTED] and > include in the body of the message "help". > =========================================================================== To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff JAVA2D-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help".
