2011-10-03 16 views
0

私はgetBounds()メソッドを実装しようとしていますが、私はunionを動作させることはできません。私は労働組合の働きを理解してはいけません。私のコードは次の通りです:なぜ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; 
} 

シェイプの変数はシェイプのarraylistです。

私はアイブ氏はそれは奇妙な数字を返したが、数字は罰金に見えるかどうかを確認するためのgetBounds()。一時ののgetWidth /身長を使用ArrayListの中で、各形状から

を境界を使用して矩形を作成するために、温度を使用しています。私がrec.getBounds.getWidth/Heightを呼び出すとき、私は両方に対して0.0を取得します。これから、imはunion()を正しく使用していないと仮定しています。誰かが私ができることについての洞察力を持っていますか?ありがとう!

答えて

3

このメソッドを使用する方法がわからない場合は、コードが非常に複雑でメソッドをテストするのはなぜですか?なぜあなたはループスルーと配列ですか?どのように結果を確認しますか?

簡単なものから始めます。 2つの矩形と各矩形のハードコードされた値を持つメソッドを使用してみてください。その後、結果を簡単に確認できます。それが動作しない場合は、投稿する完全なプログラムがあります。

のような何か:

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); 
    } 
} 
関連する問題