////////////////////////////////////////////////////////////////////////////////
// << ja129d.java >>
//
//  JApplet(2):部品(パネル、線の描画)
//
//   直線を使って図形を描く。
//
// ●Graphicsクラスのメソッド
//   public abstract void drawLine(int x0, int y0, int x1, int y1)
//     機能:点(x0,y0)と(x1,y1)を直線で結ぶ。
//
////////////////////////////////////////////////////////////////////////////////

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

public class ja129d extends JApplet {

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

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

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

  // パネルの定義(内部クラス)。
  class ja129dp extends JPanel {
    public void paintComponent(Graphics g) {                       
      super.paintComponent(g);                                     
      int x0,y0,x1,y1,rx,ry;                                       
      x0 = 40; y0 = 40; x1 = x0; y1 = y0; rx = 150; ry = 100;      
      for( int i=0; i<=31; i++ ) {                                 
        if( i%4 == 0 ) { x1 = x0 + rx; rx = (int)(0.9*rx); }       
        if( i%4 == 1 ) { y1 = y0 + ry; ry = (int)(0.9*ry); }       
        if( i%4 == 2 ) { x1 = x0 - rx; rx = (int)(0.9*rx); }       
        if( i%4 == 3 ) { y1 = y0 - ry; ry = (int)(0.9*ry); }       
        g.drawLine(x0,y0,x1,y1);                                   
        x0 = x1; y0 = y1;                                          
      }
    }                                                              
  }
}
HTMLファイル
<html>
<head>
  <title>アプレット</title>
</head>
<body bgcolor=white text=black>
<applet code="ja129d.class" width="300" height="200">
</applet>
</body>
</html>
実行結果