Chiedo, scusa, mi sono espresso male.
repaint() per quel che ne so io (e per come lo uso io, non sono un professionista), per fare in modo che 'faccia effetto' bisogna chiamarlo direttamente dal JFrame.
E' possibile invece che l'urlo lo lanci un componente più interno, indipendentemente da cosa ha più su? Che sia un minimo riusabile, insomma.
Magari la risposta è stupida, non conosco tutte le funzioni di awt/swing.