VwpFAQBIndCheckboxJa

チェックボックス: チェックボックスを boolean 以外のデータ型にバインドする方法を教えてください。


参照:
http://blogs.sun.com/roller/page/winston?entry=non_boolean_checkbox



チェックボックスには「selected」と「selectedValue」の 2 つのプロパティーがあります。「selected」プロパティーは、単純に表示する目的 (チェックボックスを選択または選択解除された状態で表示する) のために使用されます。

「selectedValue」プロパティーは、チェックボックスが選択された (「
checkbox1.isSelected()
」が True を返す) とき、「{checkbox1.getSelected()}」によって返されます。



チェックボックスを
Boolean
または {boolean} データ型にバインドすると、簡単に機能します。追加のワイヤリングやコーディングなどは必要ありません。


boolean 以外のデータ型 (Integer 型または String 型など) にバインドする必要がある場合、明示的に boolean 型プロパティーを作成し、チェックボックスをそのプロパティーにバインドする必要があります。このプロパティーは取得メソッド (is<プロパティー名>) および設定メソッド (set<プロパティー名>) を持ちます。

たとえば、SMALLINT 型の TRAVEL.PERSON.FREEQUENTFLYER があるとします。この場合、次のようにします。

1. 「表」コンポーネントをドロップし、データベース表 TRAVEL.PERSON をその上にドロップします (この表は SMALLINT 型の FREQUENTFLYER を持つ)。

2. ページに frequentFlyer という名前のプロパティーを boolean 型 (オブジェクト型 Boolean ではなくプリミティブ型 boolean を使用) で作成します。たとえば、「<プロジェクト名>」>「ソースパッケージ」>「<パッケージ名>」>「Page1.java」>「Page1」>「Bean パターン」を右クリックします。「追加」>「プロパティー」を選択します。名前に frequentFlyer、型に boolean と入力して、「了解」をクリックします。

3. Page1.java 内で、取得メソッドと設定メソッドを次のように設定します。

      public boolean isFrequentFlyer() {
              Object value = getValue("#{currentRow.value[PERSON.FREQUENTFLYER]}");
              if(value != null){
                  Integer freqFlyer = (Integer) value;
                  return freqFlyer.intValue()==1? true : false ;
              }
              return false;
          }
          public void setFrequentFlyer(boolean frequentFlyer) {
               if(frequentFlyer){
                 setValue("#{currentRow.value[PERSON.FREQUENTFLYER]}", new Integer(1));
              }else{
                 setValue("#{currentRow.value[PERSON.FREQUENTFLYER]}", new Integer(0));
              };
          } 


4. 「表レイアウト」ダイアログを使用して PERSON.FREQUENTFLYER 列をチェックボックスに変更します。

5.「アウトライン」ウィンドウで、このチェックボックスを右クリックして「データにバインド」を選択し、「オブジェクトにバインド」タブで、ページ Bean の「frequentflyer」プロパティを選択し「了解」をクリックします。プロジェクトを実行して動作を確認します。

詳細は、Sun Java Sturio Creator 2 チュートリアル「データプロバイダ」を参照してください。


Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo