Eigentlich gibt es fast nie einen Grund, super.repaint() aufzurufen. Eigentlich tut's immer ein normales repaint() (außer, wenn repaint() überschrieben wurde - das sollte man aber eher nicht machen). Und super.paint(g) ist eigentlich nur die übliche erste Zeile in einer überschriebenen paint-Methode.
Ok, d.h. wenn sich ein Graphics Object durch Ereignisverarbeitung ändern soll, dann braucht man super.repaint(), damit z.b. nach Anwahl eines Buttons neu gezeichnet wird?
Mit einem Graphics-Objekt hat man i.a. nichts zu tun, außer, dass man in das Graphics reinzeichnet, das man in der paint-Methode übergeben bekommt. Was ich meine (um mal pedantisch zu sein) : Es geht weniger darum, dass man "ein Graphics-Objekt ändert", sondern vielmehr darum, dass etwas anderes gezeichnet werden soll, nachdem z.B. ein Button geklickt wurde.
Also: Wenn sich an dem, was gezeichnet werden soll, z.B. durch einen Buttonklick etwas geändert hat, dann ruft man "repaint()" auf. Dann wird wenig später (sozusagen "vom Betriebssystem") paint(g) aufgerufen, und die Änderungen werden gezeichnet.