El método repaint() en Java

Mohammad Irfan 12 octubre 2023
El método repaint() en Java

Este tutorial presenta el método repaint() en Java.

El método repaint() pertenece a la clase Component que se encuentra en el paquete java.awt. Este método se utiliza para llamar al método update() internamente que llama al método paint() para volver a pintar el componente. Tanto paint() como repaint() se utilizan para pintar un componente, pero el método repaint() llama internamente a paint() para pintar el componente. No podemos anular el método repaint().

La clase Component proporciona estas variaciones sobrecargadas del método repaint(). Podemos utilizar estos según la necesidad.

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)

Veamos un ejemplo para entender cómo funciona el método repaint().

El método repaint() en Java

Aquí, tenemos un ejemplo de AWT que dibuja óvalos cuando se hace clic con el mouse. Primero, anulamos el método paint() y establecemos algunos puntos para el óvalo, luego en mousePressed(), llamamos al método repaint() que llamará al método paint() después de llamar a update() método. Vea el ejemplo a continuación.

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) {}
}