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