Java의 repaint() 메소드

Mohammad Irfan 2023년10월12일
Java의 repaint() 메소드

이 튜토리얼은 Java의 repaint() 메소드를 소개합니다.

repaint() 메소드는 java.awt 패키지에 있는 Component 클래스에 속합니다. 이 메서드는 구성 요소를 다시 그리기 위해 paint() 메서드를 호출하는 update() 메서드를 내부적으로 호출하는 데 사용됩니다. paint()repaint()는 모두 구성 요소를 그리는 데 사용되지만 repaint() 메서드는 내부적으로 paint()를 호출하여 구성 요소를 페인트합니다. 우리는 repaint() 메서드를 재정의할 수 없습니다.

Component 클래스는 repaint() 메서드의 이러한 오버로드된 변형을 제공합니다. 우리는 필요에 따라 이것들을 사용할 수 있습니다.

public void repaint() public void repaint(long tm) public void repaint(int x, int y, int width,
    int height) public void repaint(long tm, int x, int y, int width, int height)

repaint() 메서드가 어떻게 작동하는지 이해하기 위해 예제를 살펴보겠습니다.

Java의 repaint() 메소드

여기에 마우스를 클릭할 때 타원을 그리는 AWT의 예가 있습니다. 먼저 paint() 메서드를 재정의하고 타원에 대한 몇 가지 점을 설정한 다음 mousePressed()에서 update() 호출 후 paint() 메서드를 호출하는 repaint() 메서드를 호출했습니다. 아래 예를 참조하십시오.

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
public class SimpleTesting extends JPanel implements MouseListener {
  private Vector v;
  public SimpleTesting() {
    v = new Vector();
    setBackground(Color.white);
    addMouseListener(this);
  }
  public static void main(String args[]) {
    JFrame frame = new JFrame();
    frame.getContentPane().add(new SimpleTesting());
    frame.setTitle("Repaint Method");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLocationRelativeTo(null);
    frame.setSize(375, 250);
    frame.setVisible(true);
  }
  public void paint(Graphics g) { // paint() method
    super.paint(g);
    g.setColor(Color.black);
    Enumeration enumeration = v.elements();
    while (enumeration.hasMoreElements()) {
      Point p = (Point) (enumeration.nextElement());
      g.drawOval(p.x - 20, p.y - 20, 40, 40);
    }
  }
  public void mousePressed(MouseEvent me) {
    v.add(me.getPoint());
    repaint(); // call repaint() method
  }
  // MouseListener method blank implementation
  public void mouseClicked(MouseEvent me) {}
  public void mouseEntered(MouseEvent me) {}
  public void mouseExited(MouseEvent me) {}
  public void mouseReleased(MouseEvent me) {}
}