BiorhythmCanvas.paint()BiorhythmCanvasクラスの唯一といっていいメソッドpaint()です。
このメソッドでガシガシ描いていけば良いんですが、可読性をあげるために
drawCurves()
drawMarks()
drawStrings()
drawInstruction()
という補助メソッドをもうけてます。本質的な処理はこの四つのメソッドがやってます。
paint()メソッド本体がしていることは
if (offScreenGraphics == null) {
offScreenImage = createImage(size().width, size().height);
offScreenGraphics = offScreenImage.getGraphics();
}
でダブルバッファリングの際に用いるオフスクリーン・イメージが作成されていない場合は、まずそれを作成します。
ちょっと蛇足になりますが、ダブルバッファリングを用いているので
public void update(Graphics g) {
paint(g);
}
とupdate()メソッドは上書きしています。
作成したオフスクリーン・イメージを
offScreenGraphics.setColor(getBackground()); offScreenGraphics.fillRect(0, 0, size().width, size().height);
と、まず背景色で塗り潰し、
drawCurves(offScreenGraphics); drawMarks(offScreenGraphics); drawStrings(offScreenGraphics); drawInstruction(offScreenGraphics);
で必要なものをオフスクリーン・イメージに描画していって、最後に
g.drawImage(offScreenImage, 0, 0, this);
でオフスクリーン・イメージを表に出して終わりです。
実際の仕事はdrawCurves()、drawMarks()、drawStrings()、drawInstruction()の四つのメソッドがしているので、これらを順々に説明していきます。