FillRect() 不工作

FillRect() not working

我正在尝试制作一个在 JFrame 中绘制绿色方块的程序,但是当我尝试它时,方块不可见。我不知道它们是根本没有被绘制,还是由于某种原因不可见。

public void paintComponent(Graphics g)
{
    super.paintComponent(g);
    //make sure nothing happens when at main menu
    if(level >= 1)
    {
        //determine square size
        size[0] = playScreen.getWidth() / squares;
        size[1] = playScreen.getHeight() / squares;
        System.out.println("The width of a single square is " + size[0]);
        System.out.println("The height of a single square is " + size[1]);
        //draw the cubes
        g.setColor(Color.GREEN);
        if(currentView == 0)
        {
            //front view
            for(int i = 0; i < xPosTargets.size(); i++)
            {
                g.fillRect(xPosTargets.get(i)*size[0], zPosTargets.get(i)*size[1], size[0], size[1]);
            }
        }
        else if(currentView == 1)
        {
            //side view
            for(int i = 0; i < xPosTargets.size(); i++)
            {
                g.fillRect((yPosTargets.get(i))*size[0], (zPosTargets.get(i))*size[1], size[0], size[1]);
            }
        }
        else
        {
            //top view
            for(int i = 0; i < xPosTargets.size(); i++)
            {
                g.fillRect((xPosTargets.get(i))*size[0], (squares - zPosTargets.get(i))*size[1], size[0], size[1]);
            }
        }
    }
}

我认为变量的值不正确,但是当我尝试用 System.out.println() 打印它们时,它们正是它们应该的值。变量类型如下: xPosTargetsyPosTargetszPosTargetsArrayList<Integer> size 是一个 int[] playScreenJPanel squares 是一个 int,是的,它确实有一个值,当它应该是第一次绘制时

也许尝试 paint(Graphics g) 而不是 paintComponent(Graphics g)