2009-06-13 11 views
6

यह है कि मैं क्या पाठ के बारे में मेरी खेल में की जरूरत है:क्या किसी को java2d टेक्स्ट लाइब्रेरी पता है?

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

अब, मैं कैसे TextLayout का उपयोग करने के बारे में पढ़ रहा है, और यह अपने आप को यह सब लिखने के लिए संभव लगता है, लेकिन मैं कम से सोचने के लिए पसंद करते हैं एक उच्च स्तर। मैं सिर्फ इस तरह एक हस्ताक्षर के साथ एक लेबल वर्ग हैं:

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

किसी को भी एक खुला स्रोत (गैर GPL) वहाँ बाहर पुस्तकालय है कि पाठ सरल स्वरूपण बनाता है पता है?

+0

क्या आप कस्टम पेंट() विधियों या स्विंग घटकों का उपयोग कर रहे हैं? – akarnokd

+0

मैं java2d का उपयोग कर रहा हूं इसलिए मैं कस्टम पेंट() विधियों का उपयोग कर रहा हूं। –

+1

मुझे लगता है कि अधिकांश ग्राफिक्स प्रोग्रामों ने बस अपना स्वयं का टेक्स्ट प्रतिपादन बनाया है। अधिकतम नियंत्रण के लिए, आप String.split(), FontMetrics आदि का उपयोग कर अपने स्वयं के संस्करण को कार्यान्वित कर सकते हैं – akarnokd

उत्तर

1

यदि आप अपने गेम ग्राफिक्स को पेंट करने के लिए java2d का उपयोग कर रहे हैं, तो आप अपने टेक्स्ट को प्रस्तुत करने के लिए awt या स्विंग टेक्स्ट घटकों का उपयोग करने में सक्षम होना चाहिए। आप उदा। एक जेएलएबल बनाएं और अपने ग्राफिक्स 2 डी संदर्भ के साथ अपने रेंडर कतार में मैन्युअल रूप से अपने पेंट अंडर अपडेट विधियों को कॉल करें।

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

उपयोग करें यदि आप पढ़ने = पसंद नहीं है) (@ डैनियल जवाब के साथ प्रयोग करने के बाद, मैं निम्नलिखित समाधान के लिए पहुंचे:

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 

आशा है कि यह मदद करता है ...

संबंधित मुद्दे