Hola que tal
Eso depende de lo que este haciendo, por ejemplo si estas haciendo un applet solo con poner:
repaint();
se ejecuta el metodo, si no es un applet y tienes un frame, agregas un canvas, luego declaras un objeto de tipo canvas y haces:
obj.repaint();
y la otra que es cuando tu declaras un metodo independiente que reciba como parametro un Graphics, este metodo debe de tener un nombre distinto de paint, supongamos pinta
public void pinta(Graphics g){
g.setColor(Color.BLUE);
g.fillRect(x, y, 1, 1);
}
este por lo general se manda a llamar desde el pain, asi que solo pasas la g. De otra forma la deberias inicializar de la siguiente forma:
Graphics g;
y despues la asignas dentro de tu paint:
this.g = g;
y ya la puedes usar donde gustes.
Espero te sirva.
Hasta luego.