我正在尝试制作15个不同的多边形实例,每个实例具有不同的半径,从225开始,每个实例比另一个短15个像素。第二个和第三个字段是对象居中的坐标将是地方。我知道[i]不起作用,我已经读过我应该使用一个数组,但是我在执行代码时遇到了麻烦:
public void paintComponent(Graphics g)
{
Graphics2D g2 = (Graphics2D) g;
int i;
int number = 15;
int radiussize = 225;
for(i=0;i<=number;i++){
Shape object[i]= new Shape(radiussize-(i*15),250,300);
object[i].draw(g2);
}
}
我希望结果是15个名为的对象:
object0, object1, object2...object15.
答案 0 :(得分:1)
如果要在循环中执行此操作,则不能拥有变量的名称。如果你想存储它们,你应该创建对象的数组并以这种方式创建它们:
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
int number = 15;
int radiusSize = 225;
Shape[] objects = new Shape[number];
for(int i=0; i<number; i++){
objects[i] = new Shape(radiuSsize - (i * 15), 250, 300);
objects[i].draw(g2);
}
}
答案 1 :(得分:0)
你遇到的确切问题是什么?
以下是否有效?
for(i=0;i<=number;i++){
Shape object= new Shape(radiussize-(i*15),250,300);
object.draw(g2);
}
答案 2 :(得分:0)
我知道你的代码中有一个名为object
的数组吗?如果是,则执行此操作,而不是Shape object[i]=...
:
object[i] = new Shape(...
它基本上将一个新的Shape对象放在名为object
的数组中的第i个位置。就像我说你需要拥有那个数组,如果你不这样做,那么就把它放在你的课堂上:
Shape[] object = new Shape[16];
此代码正在创建一个大小为Shape
的{{1}}对象数组。如果您只想绘制对象而不将它们存储在任何地方,请执行以下操作:
16
如果您希望变量名为new Shape(radiussize-(i*15),250,300).draw(g2);
,object1
等等 - 您不能这样做,并且您没有理由需要它。只需将它们存储在一个数组中,然后通过object2
引用它们。