アプレットでの入力

アプレットにデータを入力するにはTextFieldを使います。

次のプログラムは円の中心座標、半径、色を入力できるアプレットです。

import java.applet.*;
import java.awt.*;
import java.awt.event.*;


// <applet code="ap_Input" width="300" height="200"></applet>

public class ap_Input extends Applet implements ActionListener {
  TextField tf1, tf2, tf3, tf4;
  Label l1, l2, l3, l4;
  int x, y, w, h;
  int Xr, Yr, R;
  Color C;
 
// ラベルとテキストフィールドの配置
  public void init(){
    l1 = new Label("X");
    add(l1);
    tf1 = new TextField();
    add(tf1);
  
    l2 = new Label("Y");
    add(l2);
    tf2 = new TextField();
    add(tf2);

    l3 = new Label("R");
    add(l3);
    tf3 = new TextField();
    add(tf3);
 
    l4 = new Label("色");
    add(l4);
    tf4 = new TextField();
    tf4.addActionListener(this);
    add(tf4);
  }

// 色を入力し、エンターキーを押したときに実行される
  public void actionPerformed(ActionEvent ae){
    Xr = Integer.parseInt(tf1.getText());
    Yr = Integer.parseInt(tf2.getText());
    R = Integer.parseInt(tf3.getText());
    x = Xr - R;
    y = Yr - R;
    h = w = 2 * R;
    C = Color.decode(tf4.getText());
    repaint(); // 再描画
  }
 
  public void paint(Graphics g){
    g.setColor(C);
    g.drawOval(x, y, w, h);
  }
}

実行例

X、Y、Rには正の整数値を、色にはHTMLでも使用される#で始まる16進数による色を入力します。

色の値を入力した後そのテキストフィールド内でエンターキーを押すと円が描かれます。