2013-02-10 72 views
9

Ho un metodo drawString() nel mio metodo paintComponent. C'è un modo per rendere il testo disegnato dallo drawString()in grassetto? Inoltre, c'è un modo per rendere il testo più grande? Vorrei evitare di usare JLabel s, a meno che non sia assolutamente necessario.Come posso rendere grassetto il testo drawString()?

risposta

18

Secondo la documentazione di drawString:

Pareggi il testo dato dalla stringa specificata, utilizzando carattere attuale di questo contesto grafico e il colore. La linea di base del carattere più a sinistra si trova nella posizione (x, y) in questo contesto grafica del sistema di coordinate

Infatti, Graphics classe ha il metodo setFont(Font font) disponibili:

g.setFont(new Font("default", Font.BOLD, 16)); 
+4

si potrebbe usare g.getFont() .deriveFont (Font.BOLD) se tutto quello che volevi fare era cambiare lo stile del font del font corrente ... – MadProgrammer

+0

@MadProgrammer Eccellente, questo è quello che sto cercando. Dovresti aver scritto la tua risposta qui. +1 senza esitazione. – user3437460

+0

Nel caso questo non sia chiaro agli altri, 'g' è la tela. Se, ad esempio, si esegue l'override di 'publicvoid paintComponent (Graphics canvas)', allora si vorrà 'canvas.setFont (new Font (" default ", Font.BOLD, 16));'. –

1

È necessario impostare il carattere prima di disegnare il testo.

g.setFont(font); 
1

ci sono metodi: setfont (Font) - Metodo della classe java.awt.Component Imposta il carattere di questo componente. setFont (Font) - Metodo della classe java.awt.Container Imposta il carattere di questo contenitore. setFont (Font) - Metodo della classe java.awt.Graphics Imposta il carattere di questo contesto grafico sul carattere specificato.