मैंने सीखा है कि आपको ग्राफिक्स ऑब्जेक्ट्स पर निपटान() को कॉल करने की आवश्यकता है जिसे आपने बनाया है जब आप उनका उपयोग कर चुके हैं। हालांकि, ग्राफिक्स ऑब्जेक्ट्स बनने पर मुझे एपीआई दस्तावेज से बाहर निकलने में कठिनाई हो रही है।क्या मुझे Component.getGraphics() से लौटा ग्राफिक संदर्भ का निपटान करने की आवश्यकता है?
स्पष्ट रूप से जब एक ग्राफिक्स ऑब्जेक्ट को कॉलबैक में पास किया जाता है, तो मैंने इसे नहीं बनाया है, और इसे निपटाना नहीं चाहिए (या मैंने जो कुछ सुना है उससे इसे संशोधित नहीं किया जाना चाहिए), और यदि मैं कॉल करता हूं Graphics.create(), तो मैं इसे बना रहा हूं और मुझे इसका निपटान करना चाहिए।
लेकिन जब मैं Component.getGraphics() को कॉल करता हूं तो क्या होगा? क्या यह एक नया ग्राफिक्स 2 डी ऑब्जेक्ट बना रहा है जिसे मैं निपटाने के लिए ज़िम्मेदार हूं, या क्या यह किसी मौजूदा ऑब्जेक्ट का संदर्भ लौटा रहा है जिसे मुझे संशोधित नहीं करना चाहिए? दस्तावेज़ीकरण किसी भी तरह से नहीं कहता है।
मुझे वास्तव में उलझन में क्या मिला BufferedImage था। इसमें createGraphics() नामक एक विधि है जिसका नाम संकेत देता है कि मुझे निपटान करने की आवश्यकता होगी। लेकिन इसमें गेटग्राफिक्स() नामक एक और विधि है जो createGraphics() के समान परिणाम देता है, लेकिन इस बात के बारे में कुछ भी नहीं कहता है कि लौटा मूल्य किसके पास है, और मुझे प्रश्न पूछना शुरू कर दिया है कि Component.getGraphics() से लौटाए गए मूल्य का मालिक कौन है। – pavon
हाँ मुझे पता है तुम्हारा क्या मतलब है। जावा में वास्तव में नामकरण मानक या सम्मेलन नहीं होता है जब लौटा संसाधनों को इंगित करने की बात आती है जिसे कॉलर द्वारा विशेष हैंडलिंग की आवश्यकता होगी। मुख्य रूप से क्योंकि स्वचालित जीसी मेमोरी एमजीएमटी को इतना कवर देता है। जब संदेह में और कभी-कभी कोड भी होता है तो जावाडोक से परामर्श करना शायद सबसे अच्छा है। – Perception
यह वास्तव में मेरे लिए सवाल का जवाब नहीं देता है। तो गेटग्राफिक्स का परिणाम "मेरे लिए बनाया गया" था? या संदर्भ के आधार पर इसका उत्तर अलग हो सकता है? – Amalgovinus