2013-11-26 64 views
1

我正在開發在Windows 7上使用NetBeans 7.3.1上的Java SE。我編寫了以下代碼。正在初始化java.awt.geom.Point2D

import java.awt.geom.Point2D; 

static void setDisplayParams(Vector<Point2D> coords, double xMin, double xMax, double yMin, double yMax){ 
    Point2D newCoords, oldCoords; 
    Vector<Point2D> displayCoords = new Vector<Point2D>(); 

    for (int i=0; i<coords.size(); ++i){ 
       oldCoords=coords.elementAt(i); 
       newCoords.setLocation(oldCoords.getX(), yMax-oldCoords.getY()); 
       displayCoords.add(newCoords); 
    } 
} 

在生產線

newCoords.setLocation(oldCoords.getX(), yMax-oldCoords.getY()); 

我得到

variable newCoords might not have been initialzed 

我Google

java.awt.geom.Point2D initializing java 

和閱讀here

消息
Point2D.Double() 

應該初始化一個java.awt.geom.Point2D變量。然而newCoords沒有字段Double。

我的for循環開始

   for (int i=0; i<coords.size(); ++i){ 
       newCoords=coords.elementAt(i); 
       newCoords.setLocation(newCoords.getX(), yMax-newCoords.getY()); 
       displayParams.displayCoords.add(newCoords); 
      } 

這並沒有給我任何錯誤消息,但它在我不想做COORDS改變的值。

+0

爲了更好地提供幫助,請發佈[SSCCE](http://sscce.org/)。 –

回答

2

您使用這樣的靜態引用。

for (int i=0; i<coords.size(); ++i){ 
    newCoords=coords.elementAt(i); 
    displayParams.displayCoords.add(new Point2D.Double(newCoords.getX(), yMax-newCoords.getY())); 
} 

這將創建一個新的Point2D並將newCoords(數組中的元素)對象保持不變。

+0

工作!非常感謝! – OtagoHarbour