Slyh: Java Applet: drawString()

Beitrag lesen

Hallo,

Das "übermalt" natürlich die vorher geschriebenen Zahlen, so dass nichts mehr zu erkennen ist.

Meine Frage nun: Wie kann ich die vorherige Ausgabe löschen? Ich könnte natürlich ein Rechteck in der Hintergrundfarbe darübermalen und dann den neuen Text schreiben, aber das erscheint mir nicht sonderlich elegant. Gibt es nicht etwas wie "replaceString" oder so?

Nein, denn mit drawString() malst du in einen Grafik-Speicher. Ein Grafikspeicher
kennt keine Strings oder dergleichen, sondern nur Pixel. Möchtest du nun bspw.
die schwarzen Pixel (Text) entfernen, mußt du dem jeweiligen Pixel eine andere
Farbe geben, z.B. die Hintergrundfarbe. Dies würde man z.B. durch das Zeichnen
eines Rechtecks machen, wie du ja schon geschrieben hast.

Ich könnte auch ein Textfeld anlegen und mit setText() jeweils den Inhalt überschreiben. Aber das sieht nicht aus wie eine Applikation. Ein Eingabeelement dafür zu nehmen, ist eben auch nicht so wirklich elegant.

Ja, oder statt eines Textfelds ein Label verwenden, das genau für Textdarstellung
vorgesehen ist. Beachte aber, dass du dann ggf. nicht mehr so ohne weiteres
in einer Schleife den Text ändern kannst, wenn du ihn auch sehen möchtest.

Gruß
Slyh