BiorhythmCanvasのアクセスメソッドBiorhythmCanvasのアクセスメソッドを見ていきます。
BiorhythmCanvasを設計するときに属性を指定できるようにしたので、それを実現するためのメソッドです。
まずは色を設定するメソッドです。
public void setPhysicalColor(Color physicalColor) {
this.physicalColor = physicalColor;
}
のように単にインスタンス変数に値をセットします。同様のメソッドが
setSensitivityColor(Color sensitivityColor)
setIntellectualColor(Color intellectualColor)
setBackgroundColor(Color backgroundColor)
setBorderLineColor(Color borderLineColor)
setBiorhythmGraphColor(Color biorhythmGraphColor)
setStringColor(Color stringColor)
になります。ただsetBackgroundColor()だけは
public void setBackgroundColor(Color backgroundColor) {
this.backgroundColor = backgroundColor;
setBackground(backgroundColor);
}
とsetBackground(backgroundColor)で実際にバックグランド色を変えています。
次にイメージをセットするメソッドです。
public void setPhysicalImage(Image physicalImage) {
this.physicalImage = physicalImage;
if (physicalImage != null) {
physicalImageDimension = getImageDimension(physicalImage);
}
}
まず
this.physicalImage = physicalImage;
でインスタンス変数の値をセットし、続いて
physicalImageDimension = getImageDimension(physicalImage);
でイメージの大きさを取得しています。
setSensitivityImage()、setIntellectualImage()も同様です。
イメージの大きさを取得するメソッドが
Dimension getImageDimension(Image im) {
int width;
int height;
while ((width = im.getWidth(this)) < 0) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
}
}
while ((height = im.getHeight(this)) < 0) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
}
}
return new Dimension(width, height);
}
です。一歩先行くインターネット Java(TM)入門の184ページにあったのをそのままパクリました。ということで、詳しい説明はその本を読んで下さい。
簡単に説明するとイメージが読み込み終わるまでループを回して、正しいサイズを取得しています。