Recent Posts

RSS Feeds

UIコンポーネントとDBのバインド

さて、本日は、UIコンポーネントとDBのバインドについて説明します。
今回のプログラムは、前回のプログラムを少し改造して作成を行います。

実行結果:
    DBより人間の名前を取得しドロップダウンリスト(コンボボックス)上に
    表示させます。
    そして、リストより名前を選択し、ボタンを実行すると対応する人に対して、
   「こんにちは、***さん」と表示するプログラムを作成します。

事前情報:
    まず、プログラムを作成する前に、事前情報を少し話しします。
    今回、ここで提供したい情報はCreator2がJDBCのRowSetをサポートしている
  ということです。

    JSR 114: JDBC Rowset Implementations

    このJDBC RowSet(行セット)テクノロジにより、Creatorでは、
    データベースにドラッグ & ドロップでグラフィカルに
    アクセスしたり、照会をグラフィカル編集したりできます。
    加えて、JDBC 互換の為、Creator から、広範囲の SQL データベース
    を利用できるようになります。

プログラムの作成:

    さて、前置きはここまでにして、実際にプログラムを作成していきましょう。

    まず、前回のプロジェクトからテキストフィールドを削除してください。
    削除は、テキストフィールドを選択し、マウスの右ボタンをクリックします。
    そして、「Delete」を選択実行するとコンポーネントを削除できます。



    そしてDropDownListコンポーネントをドラッグ&ドロップにて、
    画面に貼り付けてください。すると下記の画面が表示されます。



    ここで、下記の「outline」パレットを確認してください。
    デフォルトで設定されている、dropDownListコンポーネントのオプションの値が
    確認できます。仮に現在の状態でプログラムを実行するとドロップダウンリスト
   (コンボボックス)には「Item1」、「Item2」、「Item3」の文字列が表示され
    選択可能になっていることが確認できます。



UIコンポーネントとDBテーブルのバインド
    この状態は、まだDBにはバインドされていませんが、これからdropDownList
    コンポーネントをDBのテーブルにバインドする方法を行います。

    今回は、DBテーブルとしてCreator2にデフォルトで登録されている、「Person」
    テーブルにバインドします。

        補足:CreatorはデフォルトでPointBaseという簡易データベースサーバが同梱されています。

    手順として、まず「Server」タブを選択します。「Server」タブ中の「Data Sources」
    ツリーより、「Trabel」→「Tables」→「PERSON」テーブルを表示させます。
    そして、「PERSON」テーブルをドラッグ&ドロップでdropDownListコンポーネント上に
    配置します。
    すると、dropDownListコンポーネント上に表示されていた、「Item1」の項目は
   「abc」という文字列に変わります。



    ここで、ドロップダウンリスト上で選択可能な表示項目、そして選択した後の
    実行結果を設定します。ドロップダウンリスト上でマウス右クリックを押下して 
    ください。すると下記の項目が表示されます。ここで「Bind to Data」を実行します。



    「Bind to Data」を実行すると下記の画面が表示されます。
    ここで、「Value Field」と「Display Field」を選択します。
    今回の例では、表示も実行結果も人間の名前を設定したい為、両方ともに、
   「PERSON.NAME」を選択し「OK」ボタンを押下してください。
    これで、UIコンポーネントとDBへのバインドは完了です。
    とても簡単ですよね!!



    さて、それではこのプログラムの実装を行いたいと思います。
    前回のプロジェクトと同様、画面デザインに戻って、「こんにちは」ボタンを
    ダブルクリックしてください。



すると、button1_action()メソッドを記述する画面が表示されるかと思います。
ここで、下記のコードを記述してください。


   public String button1_action(){
       //TODO: Replace with your code
       String  name = (String) dropDown1.getSelected();
       String splitnames[] = name.split(",");
       staticText1.setText("こんにちは" + splitnames[1] + "さん!!");
       return null;
   }


コードを若干説明します。ドロップダウンリストをドラッグ&ドロップした際、
dropDown1というIDが割り当てられ、そしてCreatorにより自動的に
下記のコードが生成されています。今回、DropDownクラスのインスタンスメソッド
getSelected()を実行し、選択された値を取得しています。
取得した文字列(名前)は、","(カンマ)によって分割されたFirstNameと
LastNameとなっています。今回LastNameだけを表示させるため、文字列を分割して
表示させています。


    private DropDown dropDown1 = new DropDown();

    public DropDown getDropDown1() {
        return dropDown1;
    }

    public void setDropDown1(DropDown dd) {
        this.dropDown1 = dd;
    }


さて、上記のコードを記述したら、後は「Build」して実行します。
無事コンパイル(Build)は完了しましたか?実行すると下記のような
実行結果が得られるかと思います。



最後に、先ほどは表示名と返り値を共に「PERSON.NAME」としましたが、
色々と変えて実行してみてください。
以上で、UIコンポーネントとDBテーブルとのバインドについて説明しましたが、
問題なくできたでしょうか?

次回は、HTMLの<TABLE>(表)に対してDBテーブルをバインドさせる方法について
記載する予定です。

Permalink     No Comments
Track Back :




Post a Comment:
Comments are closed for this entry.