2009-06-13 19 views
6

Questo è quello che mi serve nel mio gioco per quanto riguarda il testo:Qualcuno sa di una libreria di testi java2d?

Word Wrap Support given a bounding box 
Vertical and Horizontal alignment given a bounding box 

Ora, ho letto su come utilizzare TextLayout, e sembra possibile scrivere tutto questo me stesso, ma preferisco pensare a un livello più alto. Voglio solo una classe Label con una firma come questo:

public Label(String text, Alignment alignment, VAlignment vAlignment); 

Qualcuno sa di un (non-gpl) libreria di là fuori che rende il testo formattazione semplice open source?

+0

Si sta utilizzando metodi paint() personalizzati o componenti Swing? – akarnokd

+0

Sto usando java2d quindi sto usando i metodi paint() personalizzati. –

+1

Penso che molti programmi di grafica abbiano semplicemente creato il proprio rendering di testo. Per il massimo controllo, puoi implementare la tua versione usando String.split(), FontMetrics ecc. – akarnokd

risposta

1

Se si utilizza java2d per dipingere la grafica del gioco, si dovrebbe essere in grado di utilizzare i componenti di testo awt o swing per rendere il testo. Potresti ad es. crea una JLabel e chiama i suoi metodi paint und update manualmente nella tua coda di rendering con il tuo contesto Graphics2D.

JLabel label = new JLabel("your text"); 
label.setLocation(0, 100); 
label.setSize(20, 100); 
label.paint(g); // g is your Graphics2D context 
0

Dopo aver sperimentato con @ risposta di Daniel, sono arrivato alla seguente soluzione:

JLabel label = new JLabel("your text"); 
    label.setSize(screen); //screen is a Dimension Object.. 
    label.setHorizontalAlignment(SwingConstants.CENTER); 
    label.paint(g2d); // g is your Graphics2D context 

Speranza che aiuta ...

Problemi correlati