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