////////////////////////////////////////////////////////////////////////////////
// << ja129f.java >>
//
//  JApplet(2):部品(パネル、イベント処理)
//
//  文字列を移動する。
//
// ●イベント処理
//  イベントソース:Timerクラス
//  イベント      :ActionEventクラス
//  イベントリスナ:ActionListenerインターフェース
//          actionPerformedメソッド
//
////////////////////////////////////////////////////////////////////////////////

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*;

public class ja129f extends JApplet implements ActionListener {

  j129fp p;
  Timer timer;
  int x,y;
  Dimension d;
  String str="JAVAアプレット";
  Font f;

  public void init() {
    // アプレットからコンテンツペインを取得。
    Container c = this.getContentPane();

    // コンテンツペインのレイアウトマネージャをBorderLayoutに設定。
    c.setLayout(new BorderLayout(20,20));

    // パネルの作成。
    p = new j129fp();
    p.setBackground(Color.yellow);
 
    // パネルをコンテンツペイン内に追加。
    c.add(p,BorderLayout.CENTER);

    // タイマーの作成。
    timer = new Timer(500, this);         

    // アプレットの大きさの取得。
    d = this.getSize();
    x = d.width;
    y = d.height/2;

    // 文字のフォント、スタイル、大きさを設定。
    f = new Font("Serif",Font.BOLD,30);
  }

  // パネルの作成(内部クラス)。
  class j129fp extends JPanel {
    public void paintComponent(Graphics g) {
      super.paintComponent(g);    
      x = x - 5;
      if( x < 0 ) { x = d.width; }
      g.setFont(f);
      g.setColor(Color.black);
      g.drawString(str,x,y);
    }
  } 

  // ActionListenerインターフェースのメソッド。
  public void actionPerformed(ActionEvent e) {
    repaint();
  }

  public void start() {
    timer.start();
  }

  public void stop() {
    timer.stop();
  }
}
HTMLファイル
<html>
<head>
  <title>アプレット</title>
</head>
<body bgcolor=white text=black>
<applet code="ja129f.class" width="300" height="200">
</applet>
</body>
</html>
実行結果