मैं एप्लिकेशन लिखने की कोशिश कर रहा हूं जिसे जावा में ग्राफिक्स 2 डी क्लास का उपयोग करके कई तारों को आकर्षित करने की आवश्यकता है। मुझे प्रत्येक स्ट्रिंग ऑब्जेक्ट के आकार (प्रत्येक स्ट्रिंग की सटीक स्थिति की गणना करने के लिए) प्राप्त करने की आवश्यकता है। इतने सारे तार हैं कि इसे पेंट() विधि कहा जाता है और केवल मेरे प्रोग्राम की शुरुआत में एक बार किया जाना चाहिए (इसलिए मेरे पास अभी तक ग्राफिक्स 2 डी ऑब्जेक्ट नहीं है)। मुझे पता है कि एक विधि Font.getStringBounds() है लेकिन इसे एक पैरामीटर के रूप में FontRenderContext ऑब्जेक्ट की आवश्यकता है।जावा में स्ट्रिंग आकार प्राप्त करना (ग्राफिक्स ऑब्जेक्ट उपलब्ध किए बिना)
जब मैं अपने वस्तु बनाने की कोशिश की:
FontRenderContext frc = new FontRenderContext(MyFont.getTransform(), true, true)
और फिर तार प्राप्त सीमा मैंने हमेशा जब मैं प्राप्त का उपयोग कर FontRenderContext Graphics2D.getFontRenderContext() रंग के अंदर विधि() विधि से विभिन्न आकारों मिल । मतभेद बड़े नहीं हैं (लगभग 1 ई -3) लेकिन मुझे आश्चर्य है कि इसमें कोई अंतर क्यों है?
हालांकि, क्या स्ट्रिंग के आकार प्राप्त करने के लिए कोई बेहतर और सुरक्षित तरीका है?
Thnx अग्रिम में किसी भी मदद के लिए!
स्ट्रिंगविड्थ स्ट्रिंग के वैध आकार को वापस नहीं करता है क्योंकि यह एंटी-एलियासिंग और अन्य विशेषताओं (जैसे वर्णों के बीच अंतर) पर विचार नहीं करता है। –