# Textlänge errechnen



## MSJones (19. Jul 2004)

Ich versuche gerade ein Sting in ein Rechteck zu schreiben.
Leider hab ich keine Ahnung, wie ich die Länge des String ausrechnen kann.
Ich hab mir vorerst mal so beholfen:

```
g.drawRoundRect(x-k/2,y,key.length()*9,k,5,5);
        Font f = new Font("SansSerif",Font.TRUETYPE_FONT,14);
        g.setFont(f);
        g.drawString(key,x-2,y+15);
```

Die Lösung iss aber ein wenig blöd, weil ein I z.b. kürzer ist als beispielsweise ein A.
Bei kurzen String fällt das zwar noch nicht so ins Gewicht, aber wenn ich ein Sting mit ein paar "kurzen" Zeichen (i,t,l) habe, dann sieht das doch schon ein wenig schräg aus.


----------



## L-ectron-X (19. Jul 2004)

Für diesen Zweck gibts die Klasse java.awt.FontMetrics
http://java.sun.com/j2se/1.4.2/docs/api/java/awt/FontMetrics.html


----------



## Beni (19. Jul 2004)

Guck mal in der Klasse Fontmetrics nach:
java.awt.FontMetrics#stringWidth


----------



## MSJones (19. Jul 2004)

OK, das FontMetrics hab ich gefunden in der API, aber jetzt rätsel ich gerade, wie ich das verwenden kann.
Der Konstruktor ist "protected", will heißen, ich bin momentan überfragt, wie ich darauf zugreifen soll.
Und ohne ein Objekt angelegt zu haben komm ich auch nicht an die Methode stringWidth ran.


----------



## Beni (19. Jul 2004)

Aber über das Graphics, welches du zum zeichnen verwendest  :wink: 

http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Graphics.html#getFontMetrics()


----------



## MSJones (19. Jul 2004)

Geil, geht!!!

Vielen Dank für die Hilfe!
 :applaus:  :lol:


----------

