Java-尝试在数组内创建圆对象

时间:2018-10-29 05:01:50

标签: java

每当我单击按钮时,我都试图使用数组来帮助我在数组的新位置生成一个新的圆形对象。这是我收到的错误:

  

Bean_Drop.java:179:错误:需要数组,但是找到了圆

     

currentBall [n] =新的Circle(shift,yRed [n],RADIUS);

代码:

尝试创建数组:

private Circle[] currentBall = new Circle[NUMBER_OF_SLOTS];

尝试在方法中实现:

public void dropABall() {
    int r;
    int g;
    int b;
    r = rand.nextInt((55) + 1) + 100;
    g = rand.nextInt((55) + 1) + 100;
    b = rand.nextInt((55) + 1) + 100;
    shift = paneWidth / 2;
    moveCount[n] = 0;
    position[n] = 0;
    yRed[n] = RED_BALL_START_Y;
    currentBall[n] = new Circle(shift, yRed[n], RADIUS);
    currentBall[n].setFill(Color.rgb(r,g,b,1.0));
    getChildren().add(currentBall);

}

之所以这样做是因为每次单击按钮时n都会增加,因此我希望它在数组的该位置放置一个圆圈。

2 个答案:

答案 0 :(得分:0)

该方法似乎位于BeanMachine中,该方法定义了一个不同变量private Circle currentBall(pastebin链接中的第109行)。错误消息说明的是,当看到currentBall[n]时,它期望currentBall是一个数组,但发现它实际上是一个圆。

这就是为什么定义两个具有相同名称(称为“阴影”)的方法很危险的原因-可能会使人感到困惑。

答案 1 :(得分:0)

currentBall在BeanMachine中的类型为Circle 但是在Bean_Drop中是一个Circle数组Circle []。

因此,当您从这些不同的类中调用它时,您将具有不同的行为。 我想在Bean_Drop类上将名称更改为currentBalls(复数)将更具表现力,并且修剪错误更少。