"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जेपीनल में स्थायी रूप से आयतें कैसे बनाएं: ओवरराइटिंग से बचने के लिए बफ़र्डइमेज का उपयोग करें?

जेपीनल में स्थायी रूप से आयतें कैसे बनाएं: ओवरराइटिंग से बचने के लिए बफ़र्डइमेज का उपयोग करें?

2024-11-11 को प्रकाशित
ब्राउज़ करें:664

How to Draw Rectangles Permanently in a JPanel: Using BufferedImages to Avoid Overwriting?

स्थायी तरीके से आयत बनाना

आपके जेपीनल कार्यान्वयन में, आयत गायब हो जाते हैं क्योंकि पेंट() विधि पिछले चित्रों को अधिलेखित कर देती है। इसे रोकने के लिए, हम अपने दृष्टिकोण को संशोधित करते हैं:

पेंटिंग सतह के रूप में एक बफ़रेडइमेज का उपयोग करना

जेपैनल पर सीधे ड्राइंग करने के बजाय, हम अपनी पेंटिंग सतह के रूप में एक बफ़र्डइमेज (कैनवासइमेज) का उपयोग करते हैं। यह हमें पिछले चित्रों को प्रभावित किए बिना छवि को स्थायी रूप से संशोधित करने की अनुमति देता है।

अनुकूलित पेंट() विधि

यहां एक संशोधित पेंट() विधि है जो ड्राइंग के लिए कैनवासइमेज का उपयोग करती है:

@Override
public void paint(Graphics g) {
    super.paint(g); // Handle inherited painting tasks

    Graphics2D bg = (Graphics2D) g;
    bg.drawImage(canvasImage, 0, 0, this);
}

और ड्राइंग के लिए इसका ग्राफिक्स संदर्भ सेट करें:

Graphics2D cg = कैनवासImage.createGraphics(); cg.setColor(रंग.सफ़ेद); cg.fillRect(0, 0, width, ऊँचाई);
canvasImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

अब, आपकी DrawRect() विधि सीधे कैनवासइमेज को संशोधित कर सकती है:

Graphics2D cg = canvasImage.createGraphics();
cg.setColor(Color.WHITE);
cg.fillRect(0, 0, width, height);

अतिरिक्त सुविधाएं

यह दृष्टिकोण कई लाभ प्रदान करता है:

public void DrawRect(int x, int y, int size, Color c) {
    Graphics2D cg = canvasImage.createGraphics();
    cg.setColor(c);
    cg.fillRect(x, y, size, size);
}
लगातार ड्रा

: बफ़र्ड इमेज पर आयतें स्थायी रूप से खींची जाती हैं।

अनुकूलित आरेखण

: पूरे जेपीनेल को दोबारा पेंट करने के बजाय, छवि के केवल संशोधित हिस्से अपडेट किए जाते हैं।
  • पूर्ववत/पुनः करें (संभावित) का समर्थन करता है: द्वारा छवि में परिवर्तनों पर नज़र रखते हुए, आप पूर्ववत/पुनः करें कार्यक्षमता लागू कर सकते हैं।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3