Prova a ridefinire il metodo paintComponents() al posto del metodo paint().

In alternativa, puoi provare a chiamare un repaint() all'interno di paintComponent():
codice:
public void paintComponent(Graphics g) {
   repaint();
}
Ciao.