import java.applet.Applet;
import java.awt.Button;                 // 1)ボタンの見た目を作る
import java.awt.event.ActionEvent;      // 2)ボタンの動きを感じる
import java.awt.event.ActionListener;   // 3)押されたときに仕事をする
import java.awt.TextArea;

public class xSmpGUI07 extends Applet{

    Button xbt = new Button("コピー"); // 表ボタン生成
    TextArea xtxtArea01 = new TextArea("",20, 70);
    TextArea xtxtArea02 = new TextArea("",20, 70);
    
    class xButtonAdapter implements ActionListener{
        public void actionPerformed(ActionEvent xbs){

            int xnum, xlineLength;
            String xs, xnokoriText, xline, xlineNumStr, xoutText;

            // 初期化
            xnokoriText = xtxtArea01.getText();
            xnum = 1;
            xoutText = "";

            // 行切り出しと行番号付加
            while (true) {
                
                if (xnokoriText.equals("")== true) break;

                // 一行取り出し
                xlineLength = xnokoriText.indexOf("\n");
                if (xlineLength >= 0) {
                    xline = xnokoriText.substring(0,xlineLength+1);
                } else {
                    xline = xnokoriText.substring(0)+"\n";
                }
                
                // 行番号付加
                xs = "   " + xnum;
                xlineNumStr = xs.substring(xs.length() - 3) + ": ";
                xline = xlineNumStr + xline;

                // 書出し用に追加
                xoutText = xoutText.concat(xline);

                if (xlineLength == -1) {
                    break;
                }

                xnokoriText = xnokoriText.substring(xlineLength + 1);
                xnum++;
            }

            // テキストエリア（ターゲット）へ
            xtxtArea02.setText(xoutText);
        }
    }

    xButtonAdapter xia = new xButtonAdapter(); //ボタン係生成

    public void init(){

        add(xbt); //表ボタンを本体プログラムの画面に貼付
        xbt.addActionListener(xia); 

        add(xtxtArea01);
        add(xtxtArea02);
    }
}

