La méthode repaint() en Java

Mohammad Irfan 12 octobre 2023
La méthode repaint() en Java

Ce tutoriel présente la méthode repaint() en Java.

La méthode repaint() appartient à la classe Component qui se trouve dans le package java.awt. Cette méthode permet d’appeler en interne la méthode update() qui appelle la méthode paint() pour repeindre le composant. Les méthodes paint() et repaint() sont toutes deux utilisées pour peindre un composant, mais la méthode repaint() appelle en interne paint() pour peindre le composant. Nous ne pouvons pas remplacer la méthode repaint().

La classe Component fournit ces variations surchargées de la méthode repaint(). Nous pouvons les utiliser selon les besoins.

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)

Voyons un exemple pour comprendre comment fonctionne la méthode repaint().

La méthode repaint() en Java

Ici, nous avons un exemple d’AWT qui dessine des ovales lorsque la souris est cliqué. Tout d’abord, nous surchargeons la méthode paint() et définissons quelques points pour l’ovale, puis dans mousePressed(), nous avons appelé la méthode repaint() qui appellera la méthode paint() après avoir appelé la méthode update(). Voir l’exemple ci-dessous.

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