| 位置をズラしながら文字列を連続描画していく。描画色をランダムに設定する。 update()メソッドをオーバーライドすることで,描画文字列を消去しないで残す。 |
import java.applet.Applet;
import java.awt.*;
public class ja06b extends Applet
{
int x = 10,y =30; //描画位置のxy座標
int w,h; //Appletの幅,高さ
public void init(){
Dimension d = size(); //Appletのサイズを取得
w = d.width; //int型変数に,横幅/高さを設定
h = d.height;
setBackground(Color.white); //Appletの背景色を白色に設定
setFont(new Font("TimesRoman",Font.ITALIC,40)); //フォントを設定
}
public void paint(Graphics g){
g.setColor(new Color((float)Math.random(),(float)Math.random(),(float)Math.random()));
//ランダムな色を作成し,設定する
g.drawString("Kodayan",x,y);
x += 10; //描画位置のxy座標を移動する
y += 12;
if(y > h){ //描画が下端に達したら,以下の処理をする
g.setColor(getBackground());
g.fillRect(0,0,w,h); //Applet内を背景色で塗り潰す(即ち,描画を全てクリアする)
y = 30; //描画開始位置を最初の位置に戻す
x = 10;
}
repaint(500); //0.5秒間隔でupdate()メソッドを呼び出す
}
public void update(Graphics g){ //update()メソッドのオーバーライド
//(これがポイント)update()をオーバーライドしない場合,デフォルトのupdate()メソッドが呼び出され,
//Applet内が背景色で塗られて,描画が消去されてしまう。
//このオーバーライドにより,単にpaint()メソッドを呼び出すだけにする。
paint(g);
}
}
末尾