String in die Mitte eines Buttons packen,

Hallo,
ich bin seit einigen Monaten dabei, ein Spiel zu programmieren, aber mir ist, seitdem ich mehrere Buttons für Optionen und Menüs verwende, aufgefallen, dass die Strings nicht in die Mitte des Buttons gepackt sind, bzw. nicht zentriert.
Ich arbeite mit Slick2D, das ist aber nach meinen Erfahrungen her, von den Standardsachen nicht so differenziert wie AWT (z.B. Graphics).
Kleiner Hinweis:
Die Buttons habe ich allesamt selber geschrieben, und erben nichts von JButton oder dergleichen. Sie alle haben aber eine Feste größe.

Also nehmen wir an, wir haben meine Standardbutton von der Größe von 200x40, darin will ich einen String packen, damit man weiß, welcher Button es ist. Das funktioniert soweit ganz gut, aber ich will, dass der String zentriert platziert ist mit einer Berechnung, und nicht alle dieses Muster haben:

String**

Es sollte schon eher so aussehen:

String

Aber nur mit jedem String, egal wie lang der ist (esseiden er ist so lang, dass er nicht mehr in den Button passt)

Habt ihr da irgendeine Idee, wie das funktionieren könnte? Google hat mir nicht gerade viel weitergeholfen.

MfG:
Florilu

Je nachdem welche Font du benutzt müsste es eine getWidth(String txt)-Methode geben.

z.B.: http://slick.ninjacave.com/javadoc/org/newdawn/slick/UnicodeFont.html#getWidth(java.lang.String)

Danke, ich schau’s mir mal an :slight_smile:

MfG:
Florilu

Habs hingekriegt ^^ Danke dir.

Die Formel:
x = ((this.buttonWidth - usedFont.getWidth(this.buttonText)) / 2);
Also Position des Strings gleich Breite des Buttons minus die Breite des Textes geteilt durch zwei.
Für Anfänger:
Die Font die benutzt wird findet man bei Slick2D so raus: Font usedFont = gameContainer.getDefaultFont();

MfG:
Florilu