2009-09-09 19 views
5

Estoy haciendo un juego y en el menú quiero mostrar el texto en el centro de la pantalla. ¿Hay alguna forma en Java para obtener/calcular el ancho de una pieza de texto en una fuente especificada con un tamaño y estilo especificados?Java: Fuentes y Píxeles

Martijn

Respuesta

11

método El FontMetrics.stringWidth hace precisamente que - se volverá el ancho en píxeles para un determinado String.

Se puede obtener el FontMetrics de un objeto Graphics por el método getFontMetrics.

Por ejemplo:

g.setFont(new Font("Serif", Font.BOLD, 24)); 
int width = g.getFontMetrics().stringWidth("Hello World!"); 

System.out.println(width); 

El resultado fue:

135 
+0

¿por qué FontMetrics abstract ?? –

+0

gracias por la ayuda rápida. –

+1

FontMetrics es abstracto porque el resultado depende del objeto gráfico particular utilizado. –

1

En la clase Font tiene métodos tales como getLineMetrics o getStringBounds que pueden ayudarle.

0

Simplemente use un JLabel alineado al centro y el administrador de disposición adecuado, y no tiene que preocuparse por esto.

0
JLabel label = new JLabel("Text"); 

frame.add(label , SwingConstants.CENTER);