Interstage Studio プログラマーズガイド
目次 索引 前ページ次ページ

第4部 ワークベンチ利用編> 第9章 ユーザインタフェースを作成する

9.6 Beanをシリアライズする

フォームに貼り付けたBeanは、シリアライズ機能を利用して状態を保存することができます。

シリアライズ機能を利用することにより、保存したBeanの状態をほかのJavaアプリケーションで利用することができます。

Beanをシリアライズする場合の手順を以下に示します。

  1. Bean上でマウスの右ボタンをクリックし、表示されるコンテキストメニューから[シリアライズ]を選択します。
  2. [シリアライズファイルの指定]ダイアログボックスが表示されます。シリアライズファイルの名前を指定してから保存します。シリアライズファイルはソースフォルダの配下に保存してください。

シリアライズしたBeanを復元するには、以下の2つの方法があります。

java.beans.Beans.instantiateメソッドの第2パラメタに渡すシリアライズしたファイル名は「.ser」を除いた名前を指定します。また、シリアライズしたファイルが保存されているフォルダのパッケージ名も指定します。例えば、シリアライズしたファイルをソースフォルダのmyapp/javaform/button1.serに保存した場合は、myapp.javaform.button1と指定します。

+initUserメソッドで復元する

JavaフォームのinitUserメソッドに以下の記述を追加します。

[initUserメソッドでBeanを復元]

 protected void initUser() {
   try {
      Beanクラス名  フィールド名 = 
        (Beanクラス名)java.beans.Beans.instantiate(null,"シリアライズしたファイル名");
      getContentPane().add(フィールド名);
   }
   catch(Exception e) {
   }
 }

initUserメソッドで復元する場合、Beanをシリアライズしたあとで、Javaフォーム上から削除しておく必要があります。

+Javaフォーム定義情報で復元する

Javaフォームに貼り付けたBeanは、Javaフォーム定義情報にある、Javaフォームの初期化処理でインスタンス化されます。

Javaフォーム定義情報でBeanを復元

 protected void _cdInitForm() {
       try {
                :
                //@@ClassField Initialization start
                Beanクラス名  フィールド名 = new Beanクラス名(); //Beanをインスタンス化します。
                :
                //@@ClassField Initialization end
                :
       }
       catch(Exception e) {
       }
 }

上記のインスタンス化している記述を以下のように変更します。

 protected void _cdInitForm() {
       try {
                :
                //@@ClassField Initialization start
                Beanクラス名  フィールド名 =
                 (Beanクラス名)java.beans.Beans.instantiate(null, "シリアライズしたファイル名");
                getContentPane().add(フィールド名);
                //@@ClassField Initialization end
                :
       }
       catch(Exception e) {
       }
 }

Javaフォーム定義情報は、シリアライズしたBeanの復元以外の目的で変更しないでください。以降のJavaフォーム編集、実行が正しく動作しなくなる可能性があります。

目次 索引 前ページ次ページ

Copyright 2007-2008 FUJITSU LIMITED