2009-09-09 13 views
5

Sto facendo un gioco e nel menu voglio visualizzare il testo al centro dello schermo. C'è un modo in Java per ottenere/calcolare la larghezza di un pezzo di testo in un font specificato con dimensioni e stile specifici.Java: Fonts and Pixels

Martijn

risposta

11

Il metodo FontMetrics.stringWidth fa proprio questo - restituisca la larghezza in pixel per un dato String.

Si può ottenere FontMetrics da un oggetto Graphics con il metodo getFontMetrics.

Ad esempio:

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

System.out.println(width); 

Il risultato è stato:

135 
+0

perché FontMetrics è astratto ?? –

+0

grazie per l'aiuto rapido. –

+1

FontMetrics è astratto perché il risultato dipende dal particolare oggetto grafico utilizzato. –

1

Nella classe Font avete metodi quali come getLineMetrics o getStringBounds che possono aiutare.

0

Basta usare una JLabel allineata al centro e il gestore di layout corretto e non devi preoccuparti di questo.

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

frame.add(label , SwingConstants.CENTER);