2011-11-30 12 views
5

Ho alcuni componenti personalizzati con metodo overridato paintComponent(Graphics g). In alcuni componenti viene utilizzato il metodo drawString() dall'oggetto Graphics g. Voglio definire caratteri personalizzati per tali stringhe disegnate.swing crea font

I file * .ttf con le definizioni dei tipi di carattere true. Ho un file CSS con classi di stile, che definisce i caratteri come:

.rosTexLogoTitle { 
    -fx-font: bold 20pt 'Tahoma Bold'; 
    -fx-text-fill: #246db6; 
    -fx-font-weight: heavybold; 
    -fx-padding: 0 10 0 0 

voglio definire tutte le proprietà di css nella mia classe Java o forse c'è un modo per utilizzare gli stili direttamente dal CSS-file (non è necessario).

Ho cercato di creare dei caratteri con un costruttore con il parametro Mappa:

public Font(Map<? extends Attribute, ?> attributes) { 
} 

Ma non l'ho fatto successo. Posso creare caratteri personalizzati con Font.createFont(style, path) quindi posso derivarlo per impostare la dimensione. Il colore può essere impostato su Graphics.setColor(). Ma non posso impostare "Tahoma Bold".

+0

Qual è la tua domanda? –

+0

Come impostare tutti gli attributi dei font (li ho in css) correttamente. Creare caratteri da * .ttf, quindi derivare e impostare le dimensioni e impostare il colore sulla grafica? Come impostare il font-weight? Come impostare la famiglia? Come lavorare con il costruttore di Font, che accetta gli attributi Mappa? Un'altra parte della domanda riguarda il livellamento di questo testo, ma intendo creare un'altra domanda mb? –

+0

Quando ho chiesto * "Qual è la tua domanda?" * Intendevo una domanda ** singola **, a differenza di 5 di essi. Scegli il tuo preferito. –

risposta

2

Non è possibile impostare lo spessore del carattere o famiglia; questi sono solo usati per selezionare il file .ttf corretto.

Quindi la soluzione è utilizzare il file .ttf corretto per iniziare. Ad esempio, la famiglia di font Arial è disponibile in quattro file:

arialbd.ttf - Weight "Bold" 
arialbi.ttf - Weight "Bold", Slant "Italic" 
ariali.ttf - Slant "Italic" 
arial.ttf - Plain version 
1

avete il file .ttf? CreateFont (stile, File) restituisce un nuovo font, allora u possibile impostare il colore

u possibile utilizzare sun.awt.Win32GraphicsEnvironment.getAvailableFontFamilyNames() ottenere tutti i font del sistema operativo