Wenn ich das richtig sehe ist in dem Beispielcode tatsächlich ein Fehler:
Auf dem Backbuffer werden 2 mal hintereinander graphics-objekte erstellt.
Render sollte eher so aussehen:
g.setColor(Color.BLACK);
g.drawString("" + x, 50, 50);
}```
Gruß