classes/EndlessMessage.java
import browser.Applet;
import awt.Graphics;
import awt.Color;
/**
EndlessMessage クラス
*/
class EndlessMessage extends Applet implements Runnable {
Thread slideThread=null; // 画像の移動を行うスレッド
protected int x=0; // メッセージのアプレット内の位置
protected String message=null; // メッセージの内容
protected int messageWidth; // メッセージの横幅
/**
初期設定の関数。
指定された URL のイメージを生成し、アプレットのサイズを設定。
*/
protected void init() {
message = getAttribute( "value" );
if( message == null )
message = "ようこそ稚内北星学園短期大学へ";
messageWidth = font.stringWidth( message ) * 4 / 3;
resize( messageWidth/2, 36 );
}
/**
アプレットの表示(初期状態)を行う関数。
*/
public void paint( Graphics g ) {
g.setForeground( Color.black );
g.paint3DRect( 0, 0, messageWidth/2, 36, true, false );
}
/**
アプレットの表示の変更を行う関数。
*/
public void update( Graphics g ) {
g.setForeground( Color.black );
g.paint3DRect( 0, 0, messageWidth/2, 36, true, false );
g.setForeground( Color.yellow );
g.drawString( message, x, 24 );
g.drawString( message, x + messageWidth, 24 );
}
/**
アプレットが続行する作業
*/
public void run() {
while( slideThread.isAlive() ) {
repaint();
x-=6;
if( x + messageWidth < 0 ) x=0;
Thread.sleep(200); //一時停止200ミリ秒
}
}
/**
アプレットが画面に現れた時に呼び出される。
*/
protected void start() {
if( slideThread == null ) {
slideThread = new Thread(this);
slideThread.start(); //スレッド起動
}
}
/**
アプレットが画面から消えた時に呼び出される。
*/
protected void stop() {
if( slideThread != null ) {
slideThread = null; //スレッド停止
}
}
}