import java.applet.Applet; import java.awt.*; public class Study6 extends Applet implements Runnable { Thread t1; int x=0,stringw; public void start() { if (t1 == null) { t1 = new Thread(this); t1.start(); } } public void run() { while(true) { repaint(); try { t1.sleep(100); } catch (InterruptedException e) { } } } public void paint(Graphics g) { g.setFont(new Font("Century",Font.BOLD,30)); g.drawString("Welcome to my homepage!",x,50); x=x - 5; if (x < -400) x=size().width; } public void stop() { if (t1 != null) { t1.stop(); t1 = null; } } }(*)詳しいことは補講のページを見て下さい。
ソースファイルの説明 import java.applet.Applet; import java.awt.*; public class Study6 extends Applet implements Runnable {//Runnableインターフェースを組み込む。(*) Thread t1;//t1というクラス名でThreadクラスをテンプレートにしたクラスを作成します。 int x=0,stringw;//初期値を代入します。 public void start() {//init実行後、実行するメソッドです。 if (t1 == null) {//t1に何も入っていないとき、以下の処理を行います。 t1 = new Thread(this);//作成したクラスの初期化を行います。 t1.start();//runメソッドの実行を開始します。 } } public void run() {//スレッドの実行部分です。 while(true) {//「真」の間は以下を実行します。 repaint(); try {//例外処理の設定 t1.sleep(100);//現在実行しているスレッドを100ミリ秒だけ停止します。停止中に何らかの中断が起きた ときには、例外InterruptedExceptionを生成します。 } catch (InterruptedException e) { }//何らかの事情で中断されたらここに来ます。 } } public void paint(Graphics g) { g.setFont(new Font("Century",Font.BOLD,30)); g.drawString("Welcome to my homepage!",x,50); x=x - 5;//X座標を5ずらす。 if (x < -400) x=size().width;/X座標が-400よりも小さいときは、アプレットの横幅を戻り値とします。 } public void stop() {//アプレットのページから別のページにリンクしたときなどに、 後始末として実行するメソッドです。 if (t1 != null) {//t1に何か入っている場合は、以下の処理を行います。 t1.stop();//t1スレッドを停止する。 t1 = null;//t1にnullを代入する。 } } }