Java弹跳球,告诉我我的方法做错了什么?

我可以进行所有工作,但是每当我编译代码并选择留下痕迹时,球都会打印每个像素,从而留下一行。我想做的是每经过球的半径就画一个球。 这是我的代码:


  public static void showBall(DrawingPanel panel, int[] ballPos, int ballSize, Color color, int trace){
    Graphics g = panel.getGraphics();
    if (trace == 0) {
      g.setColor(Color.WHITE);
      g.fillRect(0, 0, panel.getWidth(), panel.getHeight());
    }
    g.setColor(color);
    g.fillOval(ballPos[0], ballPos[1], ballSize, ballSize);
    panel.sleep(1);
  }
}