| HTMLのパラメーターで,スクロール文字列を指定する。 |
|
import java.applet.*;
import java.awt.*;
public class Test48 extends Applet implements Runnable
{
Thread td = null; //Runnableインターフェースを使ったクラスで,スレッドを利用するには
//Threadクラスのオブジェクトを生成しなければならない。
Font f = new Font("TimesRoman",Font.BOLD,30);
String s; //マーキーに表示する文字列
int x=0,y=0; //スレッド開始位置の座標を格納する変数
int wd=0; //アプレットの幅を格納する変数
public void init()
{
s = getParameter("text"); //スクロール文字列を,HTMLのパラメーターから取得
x=size().width; //アプレットウインドウの横幅 (スレッド開始位置のx座標)
y=size().height/2; // アプレットウインドウの縦幅の半分 (スレッド開始位置のy座標)
//size()はawt.Componentクラスのメソッド。Dimension型のオブジェクトを返し,widthとheightの2つの属性
//をもつ。x=550,y=150 というように特定の座標を指定してもよい。
wd=x; //アプレットの横幅を格納しておく
}
public void paint(Graphics g)
{
g.setFont(f);
g.setColor(Color.red);
g.drawString(s,x,y); //x,y座標にs文字列を描画
}
public void start() //スレッドの実行
{
if (td == null)
{
td = new Thread(this); //Threadオブジェクトの作成。
td.start(); //Threadクラスのstart()メソッドが呼び出され,スレッドを
//開始する。そしてアプレット内に定義されたrun()メソッドが呼び出される。
}
}
public void stop()
{
if (td != null)
{
td.stop();
td = null;
}
}
public void run()
{
while (true)
{
repaint(); //paint()メソッドを呼び出し,内容を常時更新する。
x-=8; //xを8づつ減少する(x=x-8と同じ)
if(x<0) x=wd; //x<0になった時(マーキーがアプレットウインドウの左端に達した時),xの値を
//リセットする(ウインドウの横幅に戻す)
try
{
Thread.sleep(200); //待ち時間を設定(2/10秒間中断する)
}
catch (InterruptedException e)
{
stop();
}
}
}
}
末尾