ページの先頭行へ戻る
Interstage Studio ユーザーズガイド
Interstage

F.2.2 Lesson2 入出力フィールド

Lesson1で作成したJavaフォームにJBKの入出力フィールドBeanを追加し、現在の日付からカレンダーで選択された日までの日数を表示するようにします。また、入出力フィールドに入力された日数にしたがってカレンダーの表示も切り替わるように変更します。
入出力フィールドBeanには以下の種類があります。

ここでは、数値の入出力用に使用したいので整数フィールドBeanを使用します。

整数フィールドBeanの配置

  1. Lesson1で作成したプロジェクト「MyCalendar」をワークベンチで開きます。
    [Frame1.java]をJavaフォーム定義で開きます。 ワークベンチの[パッケージエクスプローラ]ビューにある[MyCalendar] > [src] > [myapp.javaform] > [Frame1.java]を右クリックしてコンテキストメニューを表示します。そして[アプリケーションから開く] > [グラフィカルエディタ]を選択します。

  2. オブジェクトパレットの[JBK]が選択されていない場合は、[JBK]をクリックします。

  3. オブジェクトパレットの[整数フィールド]をクリックし選択します。

  4. マウスを使ってJavaフォーム上でドラッグして配置します。

イベント処理の記述

  1. イベント処理は、Javaエディタを使用して記述します。
    Javaフォーム定義のメニューバーから[表示] > [Javaエディタ]を選択し、Javaエディタをアクティブにします。Javaフォーム上や貼り付けたBean上でマウスをダブルクリックすることにより、Javaエディタをアクティブにすることもできます。

  2. JDKのDateクラスを使用するので、importキーワードを追加します。
    DateクラスはJDKの「java.util」パッケージに含まれているので、以下のように記述します。

        import java.util.Date;
  3. 現在の日付からカレンダーBeanで選択されている日付までの日数を計算し、整数フィールドBeanに表示する処理を記述します。
    この処理は、他のイベント処理からも呼び出せるようにFrame1クラスのメソッドとして作成します。
    太字の部分を記述します。

        /*
         * ユーザ定義初期化処理。
         */
        protected void initUser$() {
            // この位置にユーザ定義初期化処理を記述します。
        }
    
        void calculateDays() {
            long days;
            Date today = new Date();
            Date selectday = jFCalendarView1.getDate().getTime();
            days = selectday.getTime() / 86400000 - today.getTime() / 86400000;
            jFFieldLong1.setValue(days);
        }

    ポイント

    Javaエディタのコンテンツアシストについて

    本文(任意)Javaエディタにはimportキーワードの不足やクラス、メソッドなどの綴りの間違いを表示して、修正候補を表示する機能があります。使用しているクラスのimportキーワードが不足している場合には、問題のあるクラスに波線が引かれ、垂直ルーラに電球のアイコンが表示されます。この電球アイコンをクリックするとimportできるパッケージや修正の候補が表示されます。この変換候補から[java.util.Dateのインポート]を選択することでもimportキーワードを追加することができます。

  4. イベントが発生したときの処理を記述するため、[Beanリスト]ビューを表示します。
    メニューバーから[ウィンドウ] > [ビューの表示] > [その他]を選択します。[ビューの表示]ダイアログボックスが表示されます。 [Java] > [Beanリスト]を選択し、[OK]をクリックします。

  5. カレンダーの日付が選択された場合に、calculateDaysメソッドを呼び出すように処理を記述します。
    日付が選択された場合はitemイベントが発生します。itemイベントに対応した「item_itemStateChanged」イベントに処理を記述します。
    [Beanリスト]ビューにある[Frame1] > [jFCalendarView1] > [イベント] > [item_itemStateChanged]をダブルクリックします。
    イベント処理の作成確認画面が表示されるので、「はい」をクリックします。

  6. 「jFCalendarView1_item_itemStateChanged」イベントに太字の部分を記述します。

        public void jFCalendarView1_item_itemStateChanged(java.awt.event.ItemEvent e) {
            if(!defaultEventProc(e)) {
                // ここにイベント発生時の処理を記述します.
                calculateDays();
            }
        }
  7. 整数フィールドに値が入力された場合は、入力された値を現在の日付からの経過日数としてカレンダーの選択を変更するように処理を記述します。
    整数フィールド上で[Enter]キーを押した場合は actionイベントが発生します。actionイベントに対応した「action_actionPerformed」イベントに処理を記述します。
    [Beanリスト]ビューにある[Frame1] > [jFFiledLong1] > [イベント] > [action_actionPerformed]をダブルクリックします。
    イベント処理の作成確認画面が表示された場合は、[はい]をクリックします。

  8. 「jFFiledLong1_action_actionPerformed」イベントに太字の部分を記述します。

        public void jFFieldLong1_action_actionPerformed(java.awt.event.ActionEvent e) {
            if(!defaultEventProc(e)) {
                // ここにイベント発生時の処理を記述します.
                jFCalendarView1.moveToday();
    jFCalendarView1.moveDate((int) jFFieldLong1.getValue());
    } }

    ポイント

    JavaBeansのプロパティ・メソッドを使用するソースコードが対話的に作成できます。

    Interstage Studioでは、イベント処理メソッド内でJavaBeansのプロパティやメソッドを使用するソースコードの作成を支援するために「Bean関係の作成機能」を提供しています。Bean関係の作成機能を利用することにより、効率的にイベント処理を開発することができます。
    上の例では、太字の部分をJavaエディタで記述しましたが、「jFCalendarView1.moveToday();」はイベント処理メソッド内にあるJavaBeansのメソッド呼出しソースコードなのでBean関係の作成機能が使用できます。
    まずjFFieldLong1上でマウスの右ボタンをクリックし、そのままjFCalendarView1までドラッグしてからボタンを離します。この操作をワイヤリングといいます。

    Bean関係の作成ウィザードが表示されます。ソースBeanリストでは、ワイヤリング操作時に始点となったBeanが既に選択されています。ソースイベントリストでactionイベントに対応した[action_actionPerformed]を選択して、[次へ]をクリックします。

    ターゲットBeanリストでは、ワイヤリング操作時に終点となったBeanが既に選択されています。Bean関係の種別として[メソッド呼出し]を選択し、メソッドリストから[moveToday()]を選択します。[次へ]をクリックします。

    ソースコードの挿入位置を選択し、[次へ]をクリックします。

    ソース挿入後のイベント処理メソッド全体のイメージが表示されます。赤字の部分がウィザードにより作成されるソースコードです。ソースの内容および挿入位置を確認し、[作成]をクリックします。

    イベント処理メソッド内でJavaBeansのプロパティやメソッドを使用するソースコードはBean同士をつないだ線として画面に表示されます。

  9. Javaフォームを保存します。
    ワークベンチのメニューバーから[ファイル] > [保存]を選択します。
    Javaフォーム定義のメニューバーから[ファイル] > [終了]を選択し、Javaフォームを終了します。

ビルド

  1. ビルドは、Javaファイルなどのリソースファイルを保存すると自動的に実行されます。ビルドが正常に行われると「MyCalendar.jar」ファイルが作成されます。

実行

  1. 実行するファイル(クラス)を選択します。 ワークベンチの[パッケージエクスプローラ]ビューにある[MyCalendar] > [src] > [myapp.javaform] > [MyCalendar.java]をクリックします。

  2. メニューバーから[実行] > [実行] > [Javaアプリケーション]を選択します。
    アプリケーションが起動し、Javaフォームが表示されます。

  3. 選択されている日付と異なる日付をマウスでクリックします。
    整数フィールドに経過日数が表示されます。

    「2日後」を選択します。

  4. 整数フィールドに数字を入力し、[Enter]キーを押します。
    カレンダーの表示が変わることを確認します。
    整数フィールドに「5」を入力します。

  5. タイトルバーのクローズボタン([X]ボタン)をクリックして、アプリケーションを終了します。