applicationCreator com.google.code.myproject.client.MyApplication
src/com/google/code/myproject/client/MyApplication.java
www/com.google.code.myproject.MyApplication/MyApplication.html
package com.google.code.myproject.client;// GWTクラスライブラリのAPIドキュメントは以下のURLを参照。// http://code.google.com/webtoolkit/documentation/gwt.htmlimport com.google.gwt.core.client.EntryPoint;import com.google.gwt.user.client.ui.ListBox;import com.google.gwt.user.client.ui.ChangeListener;import com.google.gwt.user.client.ui.Label;import com.google.gwt.user.client.ui.RootPanel;import com.google.gwt.user.client.ui.Panel;import com.google.gwt.user.client.ui.Widget;// 使用可能なJavaクラスの一覧は以下のURLを参照。// http://code.google.com/webtoolkit/documentation/jre.htmlimport java.util.Date;/** * MyApplicationをEntryPointインタフェースのonModuleLoad()メソッドを実装したクラスとして定義。 */public class MyApplication implements EntryPoint { private ListBox yearBox; private ListBox monthBox; private ListBox dateBox; private final Label label = new Label(); // 年月日を選択するリストボックスが変更されたときに呼ばれるリスナー。中年判定をおこない、 // 結果文字列をlabelにセットする。 private class BirthdayChangeListener implements ChangeListener { public void onChange(Widget sender) { try { int year = Integer.parseInt(yearBox.getValue(yearBox.getSelectedIndex())); int month = Integer.parseInt(monthBox.getValue(monthBox.getSelectedIndex())); int date = Integer.parseInt(dateBox.getValue(dateBox.getSelectedIndex())); // 35歳の誕生日(0時0分) Date birthday35th = new Date(year - 1900 + 35, month - 1, date); // 50歳の誕生日(0時0分) Date birthday50th = new Date(year - 1900 + 50, month - 1, date); // 今日の日付(現時刻) Date today = new Date(); // 日付の前後関係を使って判定する。現在の年齢を計算するより簡単。 if (today.after(birthday35th) && today.before(birthday50th)) { label.setText("You are middle aged."); } else { label.setText("You are not middle aged."); } } catch (Exception e) { // 例外処理: 数字をリストボックスで選択するだけなので通常はエラーは起こらない。 // 2月31日のようにカレンダー上に存在しない日を入力しても例外は発生しないらしい。 label.setText("Exception: " + e); } } } // 一定範囲の数字を選択するためのListBoxを作って返す。ListBoxには // 上で定義した BirthdayChangeListener をリスナーとして登録。 private ListBox createRangeMenu(int start, int end) { ListBox listBox = new ListBox(); for (int i = start; i <= end; ++i) listBox.addItem(String.valueOf(i), String.valueOf(i)); listBox.addChangeListener(new BirthdayChangeListener()); return listBox; } /** * EntryPointインタフェースの実装。モジュールがロードされたときに呼ばれるので、 * ここでインスタンスの初期化をおこなう。 */ public void onModuleLoad() { yearBox = createRangeMenu(1900, 2000); monthBox = createRangeMenu(1, 12); dateBox = createRangeMenu(1, 31); // ここでは簡単のため、MyApplication.html に最初から用意されている slot1, slot2 という // 要素に年月日のListBoxと判定結果labelをそれぞれ配置する。 Panel slot1 = RootPanel.get("slot1"); slot1.add(yearBox); slot1.add(monthBox); slot1.add(dateBox); RootPanel.get("slot2").add(label); }}
メールでのお問い合わせ: pr-jp@google.com メディア関係者以外からのお問い合わせにはお答えいたしかねます。 その他すべてのお問い合わせにつきましては、ヘルプセンターをご覧ください。