SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Javaで軽快に使える「軽量フレームワーク」特集

Javaで軽快に使える「軽量フレームワーク」特集
~アプレットベースのRIAフレームワーク「Apache Pivot」(2)

第14回

  • X ポスト
  • このエントリーをはてなブックマークに追加

Javaソースコードの修正

 では、Javaのソースコードを修正しましょう。HelloApp.javaを次のように修正してください(なお、startup以外のメソッドは特に修正しないので割愛しています)。

package jp.tuyano.pivot;

import org.apache.pivot.collections.Map;
import org.apache.pivot.wtk.*;
import org.apache.pivot.wtk.text.validation.*;
import org.apache.pivot.wtkx.WTKXSerializer;

public class HelloApp implements Application {
    private Window window;
    private Label error;
    private TextInput number1,text1;
    private PushButton button1;
    private Checkbox check1;
    private ButtonGroup group1;
    
    @Override
    public void startup(Display display, Map<String, String> map)
            throws Exception {
        WTKXSerializer serializer = new WTKXSerializer();
        window = (Window)serializer.readObject(this, "HelloApp.wtkx");
        number1 = (TextInput)serializer.get("number1");
        number1.setValidator(new IntRangeValidator(0,100));
        text1 = (TextInput)serializer.get("text1");
        text1.setValidator(new RegexTextValidator("\\w+"));
        error = (Label)serializer.get("error");
        check1 = (Checkbox)serializer.get("check1");
        group1 = (ButtonGroup)serializer.get("group1");
        button1 = (PushButton)serializer.get("button1");
        button1.getButtonPressListeners().add(new ButtonPressListener(){
            @Override
            public void buttonPressed(Button btn) {
                error.setText("");
                if (number1.isTextValid() && text1.isTextValid()){
                    String msg = "You typed: " + number1.getText() + "," +
                        text1.getText() + "," + check1.getState() + "," +
                        group1.getSelection().getButtonData();
                    Prompt.prompt(msg, window);
                } else {
                    error.setText("ERROR!!");
                }
            }});
        window.open(display);
    }

    ……略……
}
図3 バリデーションを設定した入力フィールド、チェックボックス、ラジオボタン。プッシュボタンを押すと、すべての値が画面上部から現れるウインドウに表示される。
図3 バリデーションを設定した入力フィールド、チェックボックス、ラジオボタン。プッシュボタンを押すと、すべての値が画面上部から現れるウインドウに表示される。

 記述したら、実際にプログラムを動かしてみてください(なお、今回はコンポーネントが増えたため、アプレットとして表示する場合は縦幅を280ドット程度に大きくしておく必要があります)。2つの入力フィールドとチェックボックス、ラジオボタンが表示されます。それぞれ値を設定して「OK!」ボタンをクリックすると、入力した値とボタンの状態が画面の上部から現れたウインドウに表示されます。

 実際にいろいろとやってみると、プッシュボタンをクリックしてもメッセージが表示されない場合があることに気が付くでしょう。今回は、2つの入力フィールドにバリデーションの機能を設定しています。1つ目は0~99の整数、2つ目は半角英数字の値だけが入力可能となっています。正しく入力されていないと、入力フィールドの背景は赤く表示されます。正しい値が入力されると、色は消え、通常のフィールドの表示になります。正常な値が入力されていないと、ボタンを押しても処理は実行されないのです。

次のページ
バリデーションについて

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Javaで軽快に使える「軽量フレームワーク」特集連載記事一覧

もっと読む

この記事の著者

掌田 津耶乃(ショウダ ツヤノ)

三文ライター&三流プログラマ。主にビギナーに向けたプログラミング関連の執筆を中心に活動している。※現在、入門ドキュメントサイト「libro」、カード型学習サイト「CARD.tuyano.com」を公開...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5112 2010/05/19 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング