2009-06-13 5 views
6

To jest to, czego potrzebuję w mojej grze dotyczące tekstu:Czy ktoś wie o bibliotece tekstowej java2d?

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

Teraz, czytałem o tym, jak używać TextLayout i wydaje się możliwe, aby napisać to wszystko sobie ale wolałbym myśleć o wyższy poziom. Chcę po prostu klasę Label z podpisem tak:

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

Czy ktoś wie o (non-GPL) biblioteki open source tam sprawia, że ​​formatowanie tekstu proste?

+0

Czy używasz niestandardowych metod malowania() lub komponentów Swing? – akarnokd

+0

Używam java2d, więc używam niestandardowych metod paint(). –

+1

Myślę, że większość programów graficznych po prostu stworzyło własne renderowanie tekstu. Aby uzyskać maksymalną kontrolę, możesz zaimplementować własną wersję przy użyciu String.split(), FontMetrics itp. – akarnokd

Odpowiedz

1

Jeśli używasz java2d do malowania grafiki w grze, powinieneś być w stanie używać składników tekstu awt lub swing w celu renderowania tekstu. Możesz np. utwórz JLabel i ręcznie wywołaj metody malowania i aktualizacji w kolejce renderowania w kontekście Graphics2D.

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

Po eksperymentach z @ odpowiedź Daniela, dotarłem do następującego rozwiązania:

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 

... Mam nadzieję, że to pomaga