# Überlagern von Strings beim zeichnen verhindern



## Guest (7. Okt 2008)

Hallo zusammen,

folgendes Problem:

Ich zeichne in einem JPanel ein XY -  Diagramm. Dazu habe ich die paint-methode überschrieben.

Das setzen der Datenpunkte funktioniert soweit ganz gut.
Jetzt möchte ich aber noch die Datenwerte neben den Punkt schreiben, dazu verwende ich drawString("12345",x,y).

Bei zwei fast gleichen Datenpunkten, wird der String über den anderen Datenpunkt und dessen Beschriftung gezeichnet.

Nun würde ich gern wissen ob es eine Möglichkeit gibt, dass zu umgehen??

Am besten wäre das bei einer Kollision automatisch die bestmögliche Position zu bekommen.


----------



## Quaxli (7. Okt 2008)

Anonymous hat gesagt.:
			
		

> ...
> Ich zeichne in einem JPanel ein XY -  Diagramm. Dazu habe ich die paint-methode überschrieben.
> ...



Du meinst doch hoffentlich paintComponent? ;-)

Für Dein eigentliches Problem fällt mir nur ein umständlicher Weg ein: Über das Graphics-Object, kannst Du Dir die FontMetrics holen und dann über charWidht() für Deinen String die Länge berechnen. Wenn Du dann die Gesamt-Länge hast, kannst Du prüfen, ob dies mit einem anderen Punkt kollidiert.

Vielleicht kennt sonst noch jemand einen besseren Weg.  ???:L

<edit>
stringWidht() gibt's in FontMetrics auch noch
</edit>


----------



## Guest (7. Okt 2008)

wieso die paintComponent??

ich zeichne das komplette Panel in der paint-methode.

was ist daran falsch??


----------



## Quaxli (8. Okt 2008)

Guckst Du hier: http://www.java-forum.org/de/topic46550_zeichnen-swing-tutorial.html


----------

