いくつかの選択肢の一つを選ぶというタイプの入力があります.たとえば誕生月や星座の入力は,12個の値の中の一を選びます.この場合に,キーボードから数値や星座名を打ち込ませると,綴り誤りや「14月」のような不正値の判断でプログラムが複雑になってしまいます.Javaでは,ボタン(ON/OFF)とテキスト(文字列)の中間的な入力ツールとして,選択肢を提示してその中の一つを選ばせる選択入力が用意されています.ボタンを押すと円が大きくなる例題("Figure4")を改造して,10段階の大きさの円を描かせてみましょう.
import java.awt.*; import java.applet.Applet; import java.awt.event.*; public class Figure4c extends Applet implements ItemListener{ int cx, cy, r, i; Choice rad = new Choice(); public void init(){ r = 10; cx = getSize().width/2; cy = getSize().height/2; for(i=1; i<=10; i=i+1) rad.addItem("" + i); // 10通りを「文字列」として登録 add(rad); add(new Label("Radius")); rad.addItemListener(this); } public void itemStateChanged(ItemEvent e){ i = rad.getSelectedIndex()+1; // メソッドは 0,1,2,…を返す. // 文字列を得るにはgetSelectedItemを使う r = (int)(cx/10 * i); repaint(); } public void paint(Graphics g){ g.drawOval(cx-r, cy-r, 2*r, 2*r); } }
選択肢入力とボタン入力を比較しておきます.
ボタン | 選択肢 | |
クラス名 | Button | Choice |
イベント名 | ActionEvent | ItemEvent |
登録依頼 | ActionListener | ItemListener |
メソッド | actionPerformed | itemStateChanged |
26.1.9.20 マウス描画 | 26.1.9.21 選択値入力 | 26.1.9.22 文字列入力 | ||
2009年度版に向けて現在作業中です.
このページに関してお気づきの点がありましたら
コメント投稿システムまでお願いします.
|
Sat, 24 Mar 2007 13:56:21 JST (860d) |