Java 中的 repaint() 方法

Mohammad Irfan 2023年10月12日
Java 中的 repaint() 方法

本教程介绍了 Java 中的 repaint() 方法。

repaint() 方法属于 java.awt 包中的 Component 类。此方法用于在内部调用 update() 方法,该方法调用 paint() 方法来重新绘制组件。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() 中,我们调用 repaint() 方法,该方法将在调用 update() 后调用 paint() 方法方法。请参阅下面的示例。

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