2011-10-03 59 views
0

即時嘗試實現getBounds()方法,但我不能讓工會工作;我不知道工會如何運作。我的代碼如下:爲什麼isnt Rectangle2D.createUnion()爲我工作?

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

伊夫創建使用從每個形狀的邊界的矩形的getBounds用過()。的getWidth /高度上溫度,看它是否正在返回奇怪的數字,但在數字看起來細。當我打電話給rec.getBounds.getWidth /高度時,我都得到0.0。從這裏,我假設我沒有正確使用union()。有沒有人有任何見解,我可以做什麼?謝謝!

回答

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); 
    } 
}