El retraso no funciona en gráficos java

Este es un código para dibujar puntos en ubicaciones calculadas por el algoritmo de Bresenham:

public void drawBresenhamPoints(Graphics2D g2, List<Point> bresenham) throws InterruptedException
{
       Graphics2D g = (Graphics2D) g2;

    if(bresenham == null)
        return;

    g.setColor(Color.DARK_GRAY);

    for(int i = 0; i < bresenham.size(); i = i+20)
    {
        int x = bresenham.get(i).x - pointWidth1/2;
        int y = bresenham.get(i).y - pointWidth1/2;

        int ovalW = pointWidth1;
        int ovalH = pointWidth1;

        g.fillOval(x, y, ovalW, ovalH);

            // delay
         try 
         {
             Thread.sleep(10);
         } 
         catch(Throwable e) 
         {
         System.out.println(e.getMessage()); 
         }
    }
}

La lista 'bresenham' contiene todos los puntos calculados previamente con la ayuda del algoritmo de dibujo lineal de Bresenham. Quiero establecer un retraso de 1 segundo dentro del bucle 'for' para que cada punto se dibuje después de un intervalo de 1 segundo. La parte que figura en la sección 'retraso' no funciona. ¿Cómo hacer que el 'retraso' funcione? Más específicamente, quiero ver todos los puntos dibujados uno por uno en la pantalla en un intervalo de 1 segundo.

Respuestas a la pregunta(2)

Su respuesta a la pregunta