কম্পিউটার টিউটোরিয়াল

জাভাতে paint() মেথড এবং repaint() মেথড-এর মধ্যে পার্থক্য কী?

paint() এবং repaint()

  • paint(): এই মেথডে এই কম্পোনেন্টটি পেইন্ট করার ইনস্ট্রাকশন থাকে। জাভা স্বিং-এ, আমরা 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() মেথড কল করতে পারি।

আউটপুট

জাভাতে paint() মেথড এবং repaint() মেথড-এর মধ্যে পার্থক্য কী?

  1. জাভাতে JRadioButton এবং JCheckBox-এর পার্থক্য কী?

  2. জাভাতে JTextField এবং JTextArea-এর পার্থক্য কী?

  3. জাভাতে JFrame এবং JDialog-এর পার্থক্য কী?

  4. জাভাতে GridLayout এবং GridBagLayout-এর পার্থক্য কী?