その他のコントロールを使う
では、基本がわかったところで、フォームで使うその他のコンポーネントも使ってみることにしましょう。主なコントロールとして、HTMLのフォームにあるチェックボックス、ラジオボタン、選択リストを使ってみます。これらは、それぞれ次のようなコントロールとして用意されています。
チェックボックス
「Checkbox」というクラスとして用意されています。getValueでは、選択されていると"true"というテキストが返されます。
ラジオボタン
「Radio」というクラスとして用意されています。ただし、ラジオボタンは複数のものをグループ化して使用しますので、これ単体をFormに組み込んで使うことはありません。これとは別に、複数のRadioをグループ化して管理する「RadioGroup」というクラスがあり、これにRadioを組み込んで使用します。現在選択されているラジオボタンは、このRadioGroupのgetValueで得ることができます。
選択リスト
「Select」というクラスとして用意されています。これには「setMultiple」というメソッドが用意されており、これがfalseの場合は1つの項目だけが選択され、プルダウンリストとして表示されます。trueの場合は複数項目が選択可能となり、一覧リストとして表示されるようになります。表示する項目は、addでテキストを組み込んで作成します。
では、これらを実際に使った簡単なフォームを作成してみましょう。HeloPage.javaのソースコードを次のように修正してください。
package jp.codezine.click;
import org.apache.click.Page;
import org.apache.click.control.*;
public class HeloPage extends Page {
public String msg = "";
public Form form;
private Checkbox check;
private RadioGroup group;
private Select select;
private Submit submit;
public HeloPage(){
form = new Form("form");
check = new Checkbox("check", "チェック");
form.add(check);
group = new RadioGroup("group","ラジオ",true);
Radio r1 = new Radio("Windows","Windows");
Radio r2 = new Radio("Linux","Linux");
Radio r3 = new Radio("Mac OS X","Mac OS X");
group.add(r1);
group.add(r2);
group.add(r3);
form.add(group);
select = new Select("select","選択",true);
select.add("-");
select.add("東京");
select.add("埼玉");
select.add("千葉");
select.add("神奈川");
form.add(select);
submit = new Submit("submit", "送信");
form.add(submit);
}
@Override
public void onPost(){
msg = "";
msg += "チェック:" + check.getValue() + "<br>";
msg += "ラジオ:" + group.getValue() + "<br>";
msg += "選択:" + select.getValue() + "<br>";
}
}

ブラウザからアクセスすると、チェックボックス、ラジオボタン、プルダウンリストがそれぞれ表示されます。これらを適当に選択して送信すると、送信された内容がメッセージとして表示されます。
