ページの先頭行へ戻る
Interstage Studio J Business Kit GUIライブラリ ユーザーズガイド
FUJITSU Software

4.1.1 開発の流れ

画面制御機能 を利用した開発の流れは以下のとおりです。

  1. 画面制御機能で利用する画面を、以下のクラスの派生クラスとして作成します。

    • JFCEntryPanel

    • JFLEntryPanel

    • JFLEntryScrollablePanel

    • JFCEntryInterfacePanel

    • JFLEntryInterfacePanel

    • JFLEntryInterfaceScrollablePanel

    • JFCMultiPagePanel

    • JFLMultiPagePanel

    • JFLMultiPageScrollablePanel

    画面の作成には、GUIビルダ機能を持ったJava統合開発環境を利用すると効率的な開発が可能になります。

  2. 画面制御機能の中心となる画面制御パネルを、以下のクラスの派生クラスとして作成します。

    • JFCCardPanel

    • JFLCardPanel

    • JFCTabbedPanel

  3. 2で作成した画面制御パネルに、1で作成した画面を登録します。

    JFCCardPanelに画面を登録するためには、createPanelsメソッドを再定義して、そこで画面登録用のaddPanelメソッドを利用します。addPanelで指定する画面の名前は各画面ごとに固有の名前を指定し、名前が重複しないようにします。

    たとえば1で作成したJFCEntryPanelの派生クラスをPanel1とすると以下のように行います。なお、JFCTabbedPanelに画面を登録する場合も、JFCCardPanelと同様のメソッドを利用します。

    protected void createPanels() {
        this.addPanel(......);
        this.addPanel(......);
        this.addPanel("業務画面1","Panel1",JFCPanelLoader.DELAYED_CREATION,JFCPanelLoader.TEMPORARY_INSTANCE);
        //addPanelの引数では、
        //  1番目が画面の名前(画面遷移時の遷移先指定に利用するための一意な名前)、
        //  2番目が作成したパネルのクラス名、
        //  3番目が画面オブジェクトの生成タイミング
        //    上記では画面が表示されるときに画面オブジェクトを生成します。
        //    指定可能な生成タイミングは以下の“生成タイミング一覧”を参照
        //  4番目が画面オブジェクトの破棄タイミング
        //    上記では画面が非表示になるときに画面オブジェクトを破棄します。
        //    指定可能な破棄タイミングは以下の“破棄タイミング一覧”を参照
        ....
    }
    表4.2 生成タイミング一覧

    タイミング名

    指定するクラス変数名

    説明

    初期化時生成

    JFCObjectLoader.INIT_CREATION

    画面を登録した直後に生成します。
    画面を生成すれば画面遷移時に画面を生成する必要がなく画面遷移時の性能が向上しますが、大量の画面をまとめて登録すると画面生成に時間がかかります。主に、画面登録後にすぐ表示させたい画面に対してこのタイミングを指定します。

    表示時生成

    JFCObjectLoader.DELAYED_CREATION

    画面遷移によって画面を表示するときに生成します。
    必要なときに生成するためメモリ消費量を抑制できますが、画面遷移時に時間がかかります。主に、利用頻度が少ない画面に対してこのタイミングを指定します。

    バックグラウンド生成

    JFCObjectLoader.BACKGROUND_CREATION

    画面を登録してもすぐに生成せず、プログラムとは別のスレッドで逐次生成します。
    大量の画面をまとめて登録しても画面生成に時間をとられず、生成した後は画面遷移時の性能がよくなります。主に、画面登録後はすぐ表示させないが頻繁に表示させる画面や生成に時間がかかるような画面に対してこのタイミングを指定します。

    表4.3 破棄タイミング一覧

    タイミング名

    指定するクラス変数名

    説明

    非表示時破棄

    JFCObjectLoader.TEMPORARY_INSTANCE

    画面遷移によって画面が非表示になったときに破棄します。
    メモリ資源を節約するのが目的なので、主に、利用頻度が少ない画面に対してこのタイミングを指定します。

    バッファ保持

    JFCObjectLoader.BUFFERED_INSTANCE

    画面遷移によって画面が非表示になったときに、画面バッファで保持します。
    そのとき画面バッファがいっぱいになった場合は、最初にバッファに入れた画面から順に破棄します。メモリ消費量をある程度抑制したい場合にこのタイミングを指定します。
    バッファで保持する画面数は、JFCCardPanelとJFCTabbedPanelの以下のメソッドを利用して取得/設定します。バッファで保持する画面数のデフォルト値は10です。

    setReleaseBufferSize(int)

    getReleaseBufferSize()

    常に保持

    JFCObjectLoader.PERMANENT_INSTANCE

    画面を削除するまで破棄せず、常に保持します。
    画面を削除しない場合でも画面制御パネルが破棄されるときに同時に破棄されます。メモリ資源に余裕があれば、このタイミングを指定すると、画面遷移時の性能が向上します。

  4. 2~3で作成した画面制御パネルの派生クラスをアプリケーションあるいはアプレットに貼りつけます。

    なお、3の画面登録処理において、画面制御パネルの派生クラスのcreatePanelsで、外部ファイルを解析して画面登録を行う処理を定義することもできます。この場合、外部ファイルを変更するだけで自動的に、登録する画面を変更することが可能になるため、1の画面作成のみに専念するといった開発方法が可能になります。

JFCScrollablePanelのビューパネル

JFCScrollablePanelのビューパネルでは、オフスクリーンイメージを利用して画面を描画します。オフスクリーンイメージの生成に消費されるメモリ量(単位はバイト)は、以下の計算方法で算出します。

ビューパネルの幅×ビューパネルの高さ×3

大きなビューパネルを利用する画面を大量に扱うときにメモリ不足を引き起こす場合は、画面の破棄タイミングを使い分けて、メモリ使用量を調整してください。