我试图实现一个getBounds()方法,但我不能让工会工作;我不能理解工会是如何运作的。我的代码如下:
public Rectangle2D getBounds2D() {
Rectangle2D rec= new Rectangle2D.Double();
Rectangle2D temp;
for(int i=0; i<shapes.size(); i++){
temp = new Rectangle2D.Double(shapes.get(i).getBounds2D().getX(),shapes.get(i).getBounds2D().getY(),shapes.get(i).getBounds2D().getWidth(), shapes.get(i).getBounds2D().getHeight());
rec.createUnion(temp);
}
return rec;
}
shapes变量是Shapes的arraylist。
我使用temp来创建一个矩形,使用arraylist中每个形状的边界
我已经在临时使用了getbounds()。getWidth / Height以查看它是否返回了奇怪的数字,但数字看起来很好。当我调用rec.getBounds.getWidth / Height时,两者都得到0.0。从此,我假设我没有正确使用union()。有没有人对我能做什么有任何见解?谢谢!
答案 0 :(得分:3)
如果您不确定如何使用该方法,那么为什么您的代码如此复杂以测试该方法?你为什么循环和数组?您将如何验证结果?
从简单的事情开始。尝试使用只有两个矩形的方法,并为每个Rectangle使用硬编码值。然后,您可以轻松验证结果。如果它不起作用,那么你有一个完整的程序要发布。
类似的东西:
public class Test
{
public static void main(String args[]) throws Exception
{
Rectangle a = new Rectangle(5, 5, 30, 30);
Rectangle b = new Rectangle(10, 10, 50, 50);
a = a.union(b);
System.out.println(a);
System.out.println(b);
}
}