ボタンや選択肢,あるいはマウスによる位置の入力で済まないときは,文字列の入力を扱う必要が出てきます.アプレットの文字列入力では,文字列を入力するための1行(TextField)または複数行(TextArea)の場所を用意します.1行入力では,行末文字(ふつうはリターンキーを打つ)を入力するとボタンと同じ仕組みでアプレットに通知が来るので,メソッドactionPerformedで処理をします.このメソッドはボタンと共有ですから,ボタンと共に使う場合にはメソッドgetSourceによる判断が必要です.複数行入力の場合には,リターンの入力はテキストの一部とみなされますから,“入力終了”は他の手段で通知することになります.
次の例題Figure6では,文字列入力(1行)を2個使って,最初の文字列を2番目で指定された回数だけ並べて表示します.
import java.awt.*; import java.applet.Applet; import java.awt.event.*; public class Figure6 extends Applet implements ActionListener{ TextField str=new TextField("Sample", 40); // 初期文字列 TextField dup=new TextField("3", 6); // 初期値(表示) int num = 3; // 初期値(数値) public void init(){ add(str); // 画面への貼りつけ add(dup); str.addActionListener(this); // 入力通知依頼 dup.addActionListener(this); } public void actionPerformed(ActionEvent e){ if(e.getSource()==dup){ num=Integer.parseInt(dup.getText()); if(num < 0 || num > 20){ // 範囲外なら1に設定 num = 1; dup.setText(""+num); //文字列として設定 } } repaint(); // どちらの領域でも,変更されたら再描画する } public void paint(Graphics g){ int i; for(i=1; i <=num; i=i+1) g.drawString(str.getText(), 0, i*10+50); // 縦に並べる } }
メソッドactionPerformedの中で使われているメソッドの意味を示します.
この例ではstrとdupのどちらかです.
26.1.9.21 選択値入力 | 26.1.9.22 文字列入力 | 26.1.9.23 アプレットの動き | ||
2009年度版に向けて現在作業中です.
このページに関してお気づきの点がありましたら
コメント投稿システムまでお願いします.
|
Thu, 02 Sep 2004 19:09:32 JST (1793d) |