我正在尝试创建一个 Ellipse2D 数组,以便稍后可以在 PaintComponent() 中重置它们的位置。它不允许我在第 3 行的 Ellipse2D 下初始化并出现错误。我做错了什么?
Ellipse2D[] ellipses = new Ellipse2D[1000];
for(int i = 0; i <= 1000; i++){
ellipses[i] = new Ellipse2D(2,2,2,2);
}
最佳答案
来自 Java document :
public abstract class Ellipse2D extends RectangularShape
The Ellipse2D class describes an ellipse that is defined by a framing rectangle.
This class is only the abstract superclass for all objects which store a 2D ellipse. The actual storage representation of the coordinates is left to the subclass.
以及以下构造函数定义:
protected Ellipse2D() This is an abstract class that cannot be instantiated directly.
上述文档明确指出Ellipse2D类无法启动。抽象类旨在由其他类扩展。它基本上包含了许多共享相同属性和方法的其他子类所需的公共(public)属性和方法。
对于 Ellipse2D,它包含两个嵌套子类(嵌套意味着子类在 Ellipse2D 本身内部定义),分别是 Ellipse2D.Double 和 Ellipse2D.Float。您可以启动其中任何一个,如果您愿意,可以将其分配给 Ellipse2D,如下所示:
Ellipse2D[] ellipses = new Ellipse2D[1000];
for(int i = 0; i < 1000; i++){
ellipses[i] = new Ellipse2D.Float(2,2,2,2);
}
关于java - 初始化 Ellipse2D 数组时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32760944/