バリデーションについて
ここでの最大のポイントは、「バリデーション」です。ここでは2つの入力フィールドのインスタンスをgetで取得した後、次のようにしてそれぞれバリデーションを設定しています。
number1.setValidator(new IntRangeValidator(0,100)); text1.setValidator(new RegexTextValidator("\\w+"));
バリデーションは、「Validator」インターフェイスを実装したクラスとして用意されます。Pivotにはいくつかのバリデーション・クラスが用意されています。今回は、「IntRangeValidator」「RegexTextValidator」の2つを使っています。
IntRangeValidatorは、あらかじめ指定した範囲内の整数のみ受け付けるようにするものです。newする際、受け付ける最小値と最大値をそれぞれ引数に指定します。またRegexTextValidatorは正規表現を使って入力チェクをするもので、引数には入力されたテキストをチェックするためのパターンを用意しています。いずれも、コンポーネントの「setValidator」というメソッドで組み込むことができます。
これらのバリデーションは、入力される際に自動的に実行され値がチェックされます。バリデーションの実行をコードで明示的に記述する必要はありません。またバリデーションの結果は、組み込んだコンポーネントの「isTextValid」メソッドで得ることができます。これは真偽値を返すメソッドで、trueが返れば正しい値が入力されていることを示します。
チェックボックスとラジオボタンの値の取得
もう1つ、チェックボックスとラジオボタンの値の取得についても触れておきましょう。まずチェックボックスです。チェックボックスには、チェックの状態を調べるための「getState」というメソッドが用意されています。これはチェック状態を調べるメソッドで、Stateクラスのインスタンスとして値が取得されます。ここでは、そのままtoStringされたテキストを値として利用しています。
ラジオボタンは、どのボタンが選択されているかを調べる必要があるでしょう。これは、ラジオボタンではなく、ButtonGroupでチェックします。「getSelection」メソッドを呼び出すと、現在選択されているコンポーネント(Buttonおよびそのサブクラス)が取得されます。ここでは、そのコンポーネントの「getButtonData」を呼び出し、選択していたボタンのテキストを取り出しています。
プロンプト・ウインドウの表示
最後に、画面の上部からスクロールして現れる画面(プロンプト・画面)についても触れておきましょう。これは「Promt」クラスの「prompt」メソッドを呼び出して行います。これは次のような形で引数を指定します。
Prompt.prompt( 表示テキスト , 所属するコンテナ );
プロンプト・ウインドウは、特定の表示の手前に現れます。ですので、表示するテキストの他、それが所属する(つまりどのコンテナに貼りつけて表示させるか)を引数として指定します。
まとめ
今回は、基本となるコンポーネントとして入力フィールド、プッシュボタン、チェックボックス、ラジオボタンといったものの使い方を説明しました。またイベント処理の基本や、バリデーションの基本についても触れました。
バリデーションなどは、Pivotに標準であまり付属していません。特にテキスト関係は、正規表現を使ったものだけが用意されている、と考えた方が良いでしょう。また、WTKXを利用する方法と、Javaのソースコードですべてを記述する方法の2通りのアプローチが用意されていますので、まずは使いやすいやり方からマスターしていくとよいでしょう。両方を無理に最初から覚えなくとも、Pivotは十分使えるのですから。
今回登場したコンポーネントは、Pivotに用意されている最も基本的なものだけです。Pivotには、この他に多数のGUIコンポーネントが用意されています。それらについては、次回、改めて紹介することにしましょう。