////////////////////////////////////////////////////////////////////////////////
// << ja127.java >>
//
//  JApplet(2):部品(テキストフィールド、配置、イベント処理)
//
//  テキストフィールドを使ってデータを入力できる。
//  テキストフィールドを2つ作成する。
//  前者は固定した幅、後者は入力された文字列に応じて幅を変更する。
//
// ●イベント処理
//  イベントソース:JTextFieldクラス
//  イベント      :ActionEventクラス
//  イベントリスナ:ActionListenerインターフェース
//          actionPerformedメソッド
//
//  ●JTextFieldクラス
//    ユーザからの入力(文字列)用の欄で、1行分の編集するとき、JTextFieldクラス
//  を使う。
//
//  ●JTextFieldクラスのコンストラクタ
//    public JTextField(int c)                       
//      機能:c文字分の欄を作成する。
//    public JTextField(String s, int c)                       
//      機能:c文字分の欄を用意し、文字列sを表示する。
//
//  ●JTextComponentクラスのメソッド
//    public String getText()                       
//      機能:テキストコンポーネントの文字列を取得する。
//    public void setText(String s)                       
//      機能:テキストコンポーネントに文字列sを設定する。
//
//  ●java.awt.Containerクラスから継承したメソッド
//    public void validate()                       
//      機能:コンテナが格納している部品が追加または変更されたとき、再配置を行う。
//
// ●クラスの階層関係
//  javax.swing.txt.JTextComponent --> javax.swing.JTextField
//
//  ●Stringクラスのメソッド
//    String trim()            
//      機能:元の文字列の前後から空白を取り除く。
//
////////////////////////////////////////////////////////////////////////////////

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

public class ja127 extends JApplet implements ActionListener {

  Container c;
  JTextField t1,t2; 
  JLabel lab;

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

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

    // テキストフィールドの作成。
    t1 = new JTextField("固定幅:Good Morning おはよう",20);
    t2 = new JTextField("可変幅:",20);

    // テキストフィールドをコンテンツペイン内に追加。
    c.add(t1,BorderLayout.NORTH); 
    c.add(t2,BorderLayout.CENTER);

    // ラベルの作成。
    lab = new JLabel("ここに表示する");

    // ラベルをコンテンツペイン内に追加。
    c.add(lab,BorderLayout.SOUTH); 

    // イベントリスナの登録。
    t1.addActionListener(this);
    t2.addActionListener(this);
  }

  // ActionListenerインターフェースのメソッド
  public void actionPerformed(ActionEvent e) {
    if( e.getSource() == t1 ) { 
      String s1 = t1.getText(); lab.setText(s1); 
    }
    if( e.getSource() == t2 ) {
      String s2 = t2.getText().trim(); 
      int len = s2.length();
      t2.setColumns(len+2); // 2文字余分に確保。
      c.validate();
      lab.setText(s2);
    }
  }
}
HTMLファイル
<html>
<head>
  <title>アプレット</title>
</head>
<body bgcolor=white text=black>
<applet code="ja127.class" width="300" height="200">
</applet>
</body>
</html>
実行結果