2009-03-20 7 views
1

J'essaie de centrer une chaîne dessinée avec un "" système ", Font.BOLD, police 90" en Java. J'ai essayé (width/2 - (font.size/2 * num_of_chars)) mais cela n'a pas fonctionné.Centrer une chaîne dessinée par rapport à la taille de la fenêtre?

g2d.setFont(new Font("system", Font.BOLD, 90)); 
g2d.drawString("Pause", (int) ((800/2) - ((Font.getSize()/2) * 5)),270); 
+0

ajouter du code S'il vous plaît échantillon ou clarifier votre question - vous dessinez sur un objet AWT, par exemple? Et ça ne marche pas? – Kai

Répondre

4

Utilisez getFontMetrics(). getStringBounds(String, Graphics) pour obtenir les limites de la chaîne avec la police en cours.

Il ressemblerait à quelque chose comme ceci:

g2d.setFont(new Font("system", Font.BOLD, 90)); 
String msg = "Pause"; 
Rectangle2D bounds = g2d.getFontMetrics().getStringBounds(msg, g2d); 
g2d.drawString(msg, (int) ((getWidth() + bounds.getWidth())/2), 270); 
+0

Existe-t-il un moyen d'obtenir getStringBounds() pour renvoyer un rect au lieu d'un rect2D? – William

+0

modifier: nevermind. Je vois que 2D a aussi une méthode getWidth. Merci. – William

Questions connexes