Thursday, 15 March 2012

java - Problems with newline in Graphics2D.drawString -


g2 वर्ग Graphics2D का एक उदाहरण है। मैं मल्टी-लाइन पाठ को आकर्षित करने में सक्षम होना चाहता हूं, लेकिन इसके लिए एक नई पंक्ति की आवश्यकता है निम्न कोड एक पंक्ति में प्रस्तुत करता है।

  स्ट्रिंग न्यूलाइन = System.getProperty ("line.separator"); G2.drawString ("part1 \ r \ n" + नयालाइन + "भाग 2", एक्स, वाई);    

ड्रॉस्ट्रिंग विधि नई लाइनों को संभाल नहीं करता है

आपको स्ट्रिंग को नए-लाइन वर्णों पर विभाजित करना होगा और एक उचित ऊर्ध्वाधर ओफ़्सेट के साथ लाइनें एक-एक करके खींचनी होगी:

  शून्य डॉट स्ट्रिंग (ग्राफिक्स जी, स्ट्रिंग पाठ, int x, int y) {for (स्ट्रिंग लाइन: text.split ("\ n") g.drawString (लाइन, x, y + = g.getFontMetrics ()। GetHeight ()); }  

आपको यह विचार देने के लिए एक पूर्ण उदाहरण है:

  import java.awt। *; (स्ट्रिंग लाइन: text.split ("\ n")) g.drawString (रेखा, एक्स, वाई + = जी) के लिए सार्वजनिक वर्ग टेस्ट कम्पेनन्पेन्ट (निजी शून्य रहित स्ट्रिंग टेक्स्ट) .getFontMetrics () getHeight ())। } सार्वजनिक शून्य पेंटघटक (ग्राफिक्स जी) {सुपरपिंटकंपोनेंट (जी); ड्रॉस्ट्रिंग (जी, "हैलो \ n वर्ल्ड", 20, 20); g.setFont (g.getFont () deriveFont (20f)।); ड्रास्ट्रिंग (जी, "पार्ट 1 \ npart2", 120, 120); } सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग एस []) {JFrame f = new JFrame (); f.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); F.add (नया TestComponent ()); F.setSize (220, 220); f.setVisible (सही); }}  

जो निम्न परिणाम देता है:

 यहां छवि विवरण दर्ज करें


No comments:

Post a Comment