Java-Gaming.org
Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
Featured games (78)
games approved by the League of Dukes
Games in Showcase (408)
games submitted by our members
Games in WIP (293)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  [SOLVED] Help Java2D Moving Bounds: Why won't this work?  (Read 370 times)
0 Members and 1 Guest are viewing this topic.
Offline hippocrypt

Junior Newbie





« Posted 2012-08-24 18:50:26 »

Why doesn't this code output "45, 67"?

1  
2  
3  
4  
5  
6  
7  
8  
9  
import java.awt.geom.Ellipse2D;

public class BoundsTest {
  public static void main(String[] args) {
    Ellipse2D e = new Ellipse2D.Float(0, 0, 20, 20);
    e.getBounds().setLocation(45, 67);
    System.out.println(e.getBounds().x + ", " + e.getBounds().y);
  }
}
Offline nsigma
« Reply #1 - Posted 2012-08-24 19:15:23 »

Because getBounds() returns a new Rectangle, so changing it doesn't change the ellipse.  Try using one of the setFrame(..) methods instead.

I love that Ellipse2D extends RectangularShape - the only place on Earth where a circle is a square!  Grin  (yes, I know what they mean)


Praxis LIVE - Open-source graphical environment for developing intermedia performance tools, projections and interactive spaces.
Praxis LIVE on Twitter
Offline sproingie
« Reply #2 - Posted 2012-08-24 19:16:48 »

The Rectangle returned by getBounds is a new object, so changing its shape doesn't affect the shape you got it from.  If you want to apply your transformations to the bounds, use the setFrame method, like this:

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
import java.awt.geom.Ellipse2D;
import java.awt.Rectangle;

public class BoundsTest {
  public static void main(String[] args) {
    Ellipse2D e = new Ellipse2D.Float(0, 0, 20, 20);
    Rectangle r = e.getBounds();
    r.setLocation(45, 67);
    e.setFrame(r);
    System.out.println(e.getBounds().x + ", " + e.getBounds().y);
  }
}

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline hippocrypt

Junior Newbie





« Reply #3 - Posted 2012-08-24 19:36:31 »

I see, thanks.
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
 
Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars and Titan!

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

The invasion has landed! On Mars! And you're there to beat 'em!
cubemaster21 (147 views)
2013-05-17 21:29:12

alaslipknot (154 views)
2013-05-16 21:24:48

gouessej (185 views)
2013-05-16 00:53:38

gouessej (179 views)
2013-05-16 00:17:58

theagentd (189 views)
2013-05-15 15:01:13

theagentd (174 views)
2013-05-15 15:00:54

StreetDoggy (217 views)
2013-05-14 15:56:26

kutucuk (242 views)
2013-05-12 17:10:36

kutucuk (240 views)
2013-05-12 15:36:09

UnluckyDevil (246 views)
2013-05-12 05:09:57
Complex number cookbook
by Roquen
2013-04-24 12:47:31

2D Dynamic Lighting
by Oskuro
2013-04-17 16:46:12

2D Dynamic Lighting
by Oskuro
2013-04-17 16:45:57

2D Dynamic Lighting
by Oskuro
2013-04-17 16:23:20

Noise (bandpassed white)
by Roquen
2013-04-05 17:36:01

Noise (bandpassed white)
by Roquen
2013-04-03 16:17:38

Java Data structures
by Roquen
2013-03-29 13:21:12

Topic Request
by kutucuk
2013-03-22 21:42:01
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!
Page created in 0.086 seconds with 21 queries.