Repintando continuamente en Java

Tengo un programa de Java que utiliza hilos. En mi método de ejecución, tengo:

<code>public void run() {
    while(thread != null){
        repaint();
        System.out.println("hi");
        try {  
            Thread.sleep(1000);  
        } catch (InterruptedException e) {  
            break;  
        }  
    }
}

public void paintComponent(Graphics g) {
    // painting stuff
}
</code>

El problema es que el método de ejecución se ejecuta, pero elpaintComponent La sección no se llama. Si esta no es la forma correcta de volver a pintar el componente, ¿cómo debo volver a pintarlo?

Respuestas a la pregunta(4)

Su respuesta a la pregunta