繁体   English   中英

初始化java.awt.geom.Point2D

[英]Initializing java.awt.geom.Point2D

我正在Windows 7的NetBeans 7.3.1上使用Java SE进行开发。我编写了以下代码。

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

在这里读到

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

这没有给我任何错误信息,但是它改变了我不想做的坐标值。

您可以使用这样的静态引用。

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(数组中的元素)对象保持不变。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM