Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java में paint() विधि और repaint() विधि के बीच क्या अंतर हैं?


Paint() और Repaint()

  • paint(): इस विधि में इस घटक को पेंट करने के निर्देश होते हैं। Java Swing में, हम paint() विधि के बजाय paintComponent() विधि को बदल सकते हैं क्योंकि paint paintBorder(), paintComponent() और paintChildren() विधियों को कॉल करता है। हम इस विधि को सीधे नहीं बुला सकते, इसके बजाय हम repaint() को कॉल कर सकते हैं।
  • repaint(): इस विधि को ओवरराइड नहीं किया जा सकता। यह update() -> paint() चक्र को नियंत्रित करता है। हम एक घटक को स्वयं को फिर से पेंट करने के लिए इस विधि को कॉल कर सकते हैं। यदि हमने घटक के रूप को बदलने के लिए कुछ किया है लेकिन आकार नहीं, तो हम इस विधि को कॉल कर सकते हैं।

उदाहरण

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import java.util.*; 

public class PaintRepaintTest extends JPanel implements MouseListener { 
    private Vector v; 
    
    public PaintRepaintTest() { 
        v = new Vector(); 
        setBackground(Color.white); 
        addMouseListener(this); 
    } 
    public void paint(Graphics g) { // paint() विधि 
        super.paint(g); 
        g.setColor(Color.black); 
        Enumeration enumeration = v.elements(); 
        while(enumeration.hasMoreElements()) { 
            Point p = (Point)(enumeration.nextElement()); 
            g.drawRect(p.x-20, p.y-20, 40, 40); 
        } 
    } 
    public void mousePressed(MouseEvent me) { 
        v.add(me.getPoint()); 
        repaint(); // repaint() विधि को कॉल करें 
    } 
    public void mouseClicked(MouseEvent me) {} 
    public void mouseEntered(MouseEvent me) {} 
    public void mouseExited(MouseEvent me) {} 
    public void mouseReleased(MouseEvent me) {} 
    public static void main(String args[]) { 
        JFrame frame = new JFrame(); 
        frame.getContentPane().add(new PaintRepaintTest()); 
        frame.setTitle("PaintRepaint Test"); 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        frame.setLocationRelativeTo(null); 
        frame.setSize(375, 250); 
        frame.setVisible(true); 
    } 
}

उपरोक्त प्रोग्राम में, यदि हम स्क्रीन पर क्लिक करते हैं तो वर्ग खींचने में सक्षम होते हैं। mousePressed() विधि में, हम repaint() विधि को कॉल कर सकते हैं।

आउटपुट

Java में paint() विधि और repaint() विधि के बीच क्या अंतर हैं?


  1. Java में JTextField और JTextArea में क्या अंतर है? Java में JTextField और JTextArea में क्या अंतर है?

    Java में JTextField और JTextArea के बीच मुख्य अंतर यह है कि एक JTextField GUI एप्लिकेशन में टेक्स्ट की सिंगल लाइन एंटर करने की अनुमति देता है जबकि JTextArea GUI एप्लिकेशन में टेक्स्ट की मल्टीपल लाइन्स एंटर करने की अनुमति देता है। JTextField एक JTextField सबसे महत्वपूर्ण कंपोनेंट्स में से एक है जो

  1. Java में JFrame और JDialog में क्या अंतर है? Java में JFrame और JDialog में क्या अंतर है?

    JFrame फ्रेम में जोड़े गए कंपोनेंट्स को इसकी सामग्री कहा जाता है, इन्हें contentPane द्वारा प्रबंधित किया जाता है। JFrame में कंपोनेंट जोड़ने के लिए, हमें इसके contentPane का उपयोग करना चाहिए। एक JFrame में टाइटल, बॉर्डर, (वैकल्पिक) मेनू बार और यूज़र-स्पेसिफाइड कंपोनेंट्स के साथ एक विंडो होती है। ए

  1. Java में GridLayout और GridBagLayout में क्या अंतर है? Java में GridLayout और GridBagLayout में क्या अंतर है?

    एक GridLayout सभी कंपोनेंट्स को एक आयताकार ग्रिड में रखता है और इसे समान आकार के आयतों में विभाजित करता है और प्रत्येक कंपोनेंट को एक आयत के अंदर रखा जाता है जबकि GridBagLayout एक लचीला लेआउट मैनेजर है जो कंपोनेंट्स को वर्टिकली और हॉरिजॉन्टली संरेखित करता है बिना यह आवश्यकता के कि कंपोनेंट्स समान आक