2011-10-06 10 views
5

अब मुझे लगता है कि मैं टेक्स्ट पर सीमा जोड़ने के तरीके के बारे में जानने के लिए इंटरनेट पर देख रहा हूं, इसलिए मैंने यहां पूछने का फैसला किया, क्योंकि आप लोग हमेशा जवाब जानते हैं।खींची गई स्ट्रिंग की मोटी सीमा

तो, जावा में, मैं ग्राफिक्स 2 डी तत्व पर खींची गई स्ट्रिंग में प्रत्येक अक्षर के आस-पास लगभग 2 पिक्सेल की सीमा कैसे खींचूं?

इस तरह

:
Text with 2px border


अग्रिम धन्यवाद।

उत्तर

5

देखें: Transforming Shapes, Text, and Images। ट्रांसफॉर्म उदाहरण में "आदिम" को "टेक्स्ट" और "प्रतिपादन" को "स्ट्रोक और भरें" पर सेट करें।

6

मैं जावा में पाठ पर एक रूपरेखा खींचने के लिए Javaworld में एक सरल समाधान पाया:

g.setColor(Color.red); 
g.drawString("Outline", ShiftWest(x, 1), ShiftNorth(y, 1)); 
g.drawString("Outline", ShiftWest(x, 1), ShiftSouth(y, 1)); 
g.drawString("Outline", ShiftEast(x, 1), ShiftNorth(y, 1)); 
g.drawString("Outline", ShiftEast(x, 1), ShiftSouth(y, 1)); 
g.setColor(Color.yellow); 
g.drawString("Outline", x, y); 

अनिवार्य रूप से, आप आकर्षित एक ही स्ट्रिंग प्रत्येक दिशा में स्थानांतरित कर दिया से पहले आपको स्ट्रिंग आकर्षित वांछित रंग यह एक पिक्सेल रूपरेखा के लिए अच्छी तरह से काम करता है, लेकिन मोटी रूपरेखाओं के लिए अच्छी तरह से स्केल नहीं करता है क्योंकि यदि आप कई बार स्थानांतरित करते हैं तो कोनों में अंतर हो सकते हैं।

एक और समाधान एक परिवर्तन का उपयोग करना होगा और आउटऑटल() प्राप्त करना होगा जो टेक्स्टलेआउट कक्षा का एक तरीका है। रूपरेखा करने के लिए एक उदाहरण here पाया जा सकता है।

+1

बहुत आसान समाधान! –

+0

काफी नहीं है ... यह यूपी, नीचे, बाएं और दाएं को याद करता है, लेकिन यह एक बहुत अच्छा समाधान है। मैं इसका इस्तेमाल कर रहा हूँ। TextLayout.getOutline() – marcolopes

+0

+1 मुझे लगता है कि यह एक साधारण सीमा रूपरेखा के लिए निश्चित रूप से एक आसान समाधान है। +1 – Andrea

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