GUIの勉強を始めたところなのですが、描画のところがよくわかりません。。
すみませんが、どなたか教えてください。。

下のようなプログラムについて
1.paintメソッドはどこが呼び出しているのでしょうか?
2.paintメソッドが実行される時のGraphics型の引数gには、何が与えられているのでしょうか?
(質問がおかしかったらごめんなさい)

import java.awt.*;
class Draw extends Canvas {

Frame frame;

public void paint( Graphics g ) {
g.drawString( "あいうえお", 20, 20 );
}

Draw() {
frame = new Frame( "フレーム" );
setSize( 100, 30 );
frame.add( this );
frame.pack();
frame.setVisible( true );
}

public static void main( String[] args ) {
new Draw();
}
}