スクロールする文字列


HTMLのパラメーターで,スクロール文字列を指定する。

Java Appletです


ソースコード

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();
	}
    }
  }
}

末尾