ウィンドウ制御機能を利用した開発は、まず、各ウィンドウをJFCFrameまたはJFCDialogの派生クラスで定義し、次にJFCWindowLoaderManagerの派生クラスに登録するという手順を踏みます。
ウィンドウ制御機能を利用した開発の流れは以下のとおりです。
ウィンドウ制御機能で利用するウィンドウを、以下のクラスの派生クラスとして作成します。
JFCFrame
JFCDialog
ウィンドウの作成には、GUIビルダ機能を持ったJava統合開発環境を利用すると効率的な開発が可能になります。
JFCWindowLoaderManagerの派生クラスを作成し、各ウィンドウを登録します。
createWindowsメソッドを再定義し、各ウィンドウを登録します。addFrameメソッドを利用して、フレームを登録し、addDialogメソッドを利用して、ダイアログを登録します。addFrameまたはaddDialogで指定するウィンドウ名は各ウィンドウごとに固有の名前を指定し、名前の重複がないようにします。
例えば、1.で作成したJFCFrameの派生クラスをFrame1として、JFCDialogの派生クラスをDialog1として、以下のように行います。
protected void createWindows() { this.addFrame("業務フレーム1","Frame1",JFCObjectLoader.DELAYED_CREATION,JFCObjectLoader.TEMPORARY_INSTANCE); this.addDialog("業務ダイアログ1","Dialog1",true); //addFrameの引数では //1番目がフレーム名(ウィンドウ遷移時の遷移先指定に利用するための一意な名前)、 //2番目が作成したフレームのクラス名、 //3番目がフレームオブジェクトの生成タイミング // 上記ではフレームが表示されるときにウィンドウオブジェクトを生成します。 // 指定可能な生成タイミングは以下の[生成タイミング一覧]を参照 //4番目がフレームオブジェクトの破棄タイミング // 上記ではフレームが非表示になるときにウィンドウオブジェクトを破棄します。 // 指定可能な破棄タイミングは以下の[破棄タイミング一覧]を参照 //addDialogの引数では //1番目がダイアログ名(ウィンドウ遷移時の遷移先指定に利用するため一意な名前)、 //2番目が作成したダイアログのクラス名、 //3番目がモーダルのフラグ // 上記ではモーダルダイアログを生成します。 this.addFrame(......); this.addDialog(......); .... } |
タイミング名 | 指定するクラス変数名 | 説明 |
---|---|---|
初期化時 | JFCObjectLoader.INIT_CREATION | addFrameメソッドが実行された時点でウィンドウオブジェクトを生成します。 |
表示時 | JFCObjectLoader.DELAYED_CREATION | ウィンドウが初めて表示される時点でウィンドウオブジェクトを生成します。 |
バックグラウンド | JFCObjectLoader.BACKGROUND_CREATION | addFrameメソッドが実行された時、アプリケーション、アプレットとは別スレッドでウィンドウオブジェクトを生成します。 |
タイミング名 | 指定するクラス変数名 | 説明 |
---|---|---|
非表示時に破棄 | JFCObjectLoader.TEMPORARY_INSTANCE | ウィンドウが非表示になった時点でウィンドウオブジェクトをメモリから破棄します。 |
バッファで保持 | JFCObjectLoader.BUFFERED_INSTANCE | バッファでオブジェクトを保持します。バッファがいっぱいになった場合は、一番最初に保持したオブジェクトから順にメモリから破棄します。 |
常に保持 | JFCObjectLoader.PERMANENT_INSTANCE | 各ウィンドウを管理するJFCWindowLoaderManagerの派生クラスが破棄されるまでウィンドウオブジェクトをメモリ上に保持します。 |
ウィンドウ登録後、JFCWindowLoaderManagerのshowWindowメソッドを使用して、ウィンドウを表示します。
注意
ウィンドウ制御機能を利用するアプレットについて
ウィンドウ制御機能を利用するアプリケーションあるいはアプレットは、JFCObjectLoaderのsetURLsまたはaddURLメソッドを利用して、他の位置に保存しているウィンドウクラスをロードすることが可能です。アプレットで利用する場合、そのアプレットをダウンロードしてきたサーバ以外のホストとの通信ができないため、URLに設定できるのはアプレットがあるサーバのみとなります。アプリケーションでは、この制限はありません。