26.1.9.14 初期メソッド

Figure3の例では,HTMLファイルの中でAPPLET部が3回出てきましたが,この場合は,同じアプレットプログラムが3通りの環境で走ります.したがってそれぞれが,異なるWIDTHとHEIGHTを受け取った訳です.ここで,メソッド"paint"は画面の見え方が変化したときに何回も呼ばれますが,領域の大きさに関する部分は毎回同じ計算になります.このように,あるアプレットで最初に1回だけ行なえばよい処理は,メソッド"init"の中で指定するようにします.

import java.awt.*;
import java.applet.Applet;
public class Figure3a extends Applet{
  int w, h, r, s, i;
  public void init(){
     w = getSize().width;
     h = getSize().height;
     r = h/4;
     s = w/8;
  }
  public void paint(Graphics g){
     g.setColor(Color.pink);
     g.fillRect(0, 0, w, h);
     g.setColor(Color.blue);
     for(i=1; i<8; i=i+1)
        g.drawOval(s*i-r, h/2-r, 2*r, 2*r);
  }
}

fileFigure3a.java