Apdesigner プログラマーズガイド |
目次 索引 |
第2部 アプリケーション開発編 | > 第5章 アプレットを開発する | > 5.3 複数のJavaフォームを連携するアプレットを開発する |
多くのJavaフォームを1つのアプレットにまとめると、メモリ使用量が多くなり、アプレットの起動に時間がかかります。このため、Javaフォームが多くなる場合は、アプレットをいくつかに分割し、アプレット間はHTMLページで画面遷移を行うようにします。
ここでは、複数のアプレットを連携する場合の留意点について以下に説明します。
アプレットを分割してHTMLページで画面遷移を行う場合、HTMLページ間でデータを引き継ぐ必要があります。一般的には、アプレットを1つ常駐させ、データを保持するようにします。終了処理は、データ保持用のアプレットが終了するタイミングで行います。
データ保持用のアプレットを常駐させるには、別のウィンドウを表示する方法と、フレームを使う方法があります。
新しくWebブラウザのウィンドウを作成し、そのウィンドウでHTML画面遷移を行います。元のウィンドウでは、データ保持用のアプレットを実行しておきます。新しいウィンドウを作成するときに、JavaScriptを用いてウィンドウの形式を制御することができます。
HTMLのフレームのうち、1つのフレームを固定とし、データ保持用のアプレットを実行します。
ADControllerクラスをメモリに残すことによって、データ保持用のアプレットを使用しない方法も可能です。ただし、この方法では終了処理を行うタイミングが不明になるため、アプレット間でセションを共用するなどの終了処理が必要な場合には適用できません。
この方法を使う場合は、ADControllerクラスの作成時に第3パラメタをtrueと指定します。controller = new ADController("GROUP1", this, true);
このあとに共通データとして設定されたデータは、Webブラウザが終了するまでメモリ上に保持されます。
HTML遷移で動作するアプレットは、"Javaフォームをアプレットにまとめる"と同様に作成しますが、以下の相違があります。
画面の識別名に対して、HTML名を登録します。たとえば、"SCR5678"という識別名に対して、"nextscreen.html"というHTMLを対応付け、表示先のターゲット名(フレームまたはウィンドウ)を"frame1"とする例を以下に示します。
controller.addADComponent("SCR5678", new URL(getDocumentBase(), "nextscreen.html"), "frame1");
stop()メソッドで、アプレット内に閉じているものだけ終了処理を行います。HTML間で共用するものは、ここでは終了処理をしません。
データ保持用のアプレットの画面は任意に作成します。たとえば、イメージの表示、または強制終了ボタンをもつことができます。
データ保持用のアプレットでは、ADControllerクラスのインスタンスを保持します。データを1つ書きこむことにより、共通データを保持できるようになります。
// ADControllerを作成します。 controller = new ADController("GROUP1", this, false); // ダミーデータを書きこむことにより、データの保持を開始します。 controller.setADProperty("dummy", "dummy data", true);
データ保持用のアプレットでは、stop()メソッドでアプレット間にまたがるセションの終了処理が必要です。別のウィンドウを表示している場合、JavaScriptを用いてそのウィンドウを閉じることが可能です。その場合は、stop()メソッドを使用して行います。
JavaScriptを用いた、ウィンドウを作成する例、ウィンドウを閉じる例を以下に示します。
JavaScriptでウィンドウを作成します。このHTMLページを表示すると同時に、"window1"というターゲット名の新しいウィンドウが表示されます。
<HTML> <HEAD> <TITLE> HTMLタイトルを記述 </TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- function openWin() { newWin = window.open("nextscreen.html", "window1", "width=1024, height=800"); newWin.moveTo(10, 10); } // --> </SCRIPT> </HEAD> <BODY> <SCRIPT LANGUAGE="JavaScript"> <!-- openWin(); // --> </SCRIPT> ここにHTML本文を記述します。 </BODY> </HTML>
JavaScriptでウィンドウを閉じます。このHTMLは表示したウィンドウを閉じます。
<HTML> <HEAD> <TITLE> HTMLタイトルを記述 </TITLE> </HEAD> <BODY> <SCRIPT LANGUAGE="JavaScript"> <!-- window.close(); // --> </SCRIPT> </BODY> </HTML>
上記のHTMLファイルを"close.html"とした場合、アプレットに以下のように記述することで"window1"を閉じることができます。
getAppletContext().showDocument("close.html", "window1");
目次 索引 |