SHOEISHA iD

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

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

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

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

第14回

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

WTKXからロードする

 では今のGUIを、WTKXファイルを利用して作成してみることにしましょう。前回作成した「HelloApp.wtkx」をそのまま書き換えて使用することにしましょう。

<Window title="Sample" maximized="true"
        xmlns:wtkx="http://pivot.apache.org/wtkx"
        xmlns="org.apache.pivot.wtk">
    <content>
        <BoxPane orientation="vertical">
            <Label wtkx:id="label"
                styles="{font:'bold 24', color:'#0000FF'}"
                text="テキストを入力:" />
            <TextInput wtkx:id="input" styles="{font:'Serif plain 14'}" />
            <PushButton wtkx:id="button" buttonData="OK!" />
        </BoxPane>
    </content>
</Window>

 <content>タグ内に、今回使用したコンポーネント類がまとめられています。ここでは、次のようなタグが使われていることが分かります。

使用されているタグ
タグ 説明
<BoxPane> BoxPaneコンテナのタグです。orientation属性でレイアウトの方向を指定します。
<Label> これは既に説明しました。Labelコンポーネントのタグです。
<TextInput> 入力フィールドTextInputコンポーネントのタグです。stylesでフォントだけ指定してあります。
<PushButton> PushButtonコンポーネントのタグです。ここではイベント関係は特に用意しておらず、buttonDataだけ用意してあります。

 これらのうち、コンポーネント関係にはすべて「wtkx:id」という属性が用意されています。これは、各要素を識別するためのIDです。これは、この後のstartupメソッドで必要となるものですので、必ず用意しておきます。

startupメソッドを修正する

 では、WTKXファイルからGUIをロードして使用するように、HelloAppクラスのstartupメソッドを修正しましょう。

// org.apache.pivot.wtkx.WTKXSerializer をインポートする

@Override
public void startup(Display display, Map<String, String> map)
        throws Exception {
    WTKXSerializer serializer = new WTKXSerializer();
    window = (Window)serializer.readObject(this, "HelloApp.wtkx");
    label = (Label)serializer.get("label");
    input = (TextInput)serializer.get("input");
    button = (PushButton)serializer.get("button");
    button.getButtonPressListeners().add(new ButtonPressListener() {
        @Override
        public void buttonPressed(Button arg0) {
            String s = input.getText();
            label.setText("You typed: " + s);
        }
    });
    window.open(display);
}
図2 WTKXファイルをロードして表示したもの。
図2 WTKXファイルをロードして表示したもの。

 これで完成です。実際にプログラムを動かしてみて、先ほどとまったく同じようにGUIが表示され、ボタンのクリックイベントが動作することを確認してください。

 WTKXからGUIをロードするには、WTKXSerializerクラスのreadObjectを利用しました。これでWindowはロードされますが、その中に組み込まれているコンポーネント類を取得するにはどうするのでしょうか。これは「get」メソッドで取り出せます。

変数 =《WTKXSerializer》.get(《wtkx:idの値》);

 このようにして呼び出します。引数には、先ほどWTKXのコンポーネント・タグに用意したwtkx:idの値を指定します。これにより、指定のwtkx:idのタグで定義されたコンポーネントが変数に取得される、というわけです。

次のページ
アノテーションを使った書き方

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

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

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング