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

第2部 アプリケーション開発編> 第5章 アプレットを開発する> 5.3 複数のJavaフォームを連携するアプレットを開発する

5.3.4 複数のアプレットを使用する

多くのJavaフォームを1つのアプレットにまとめると、メモリ使用量が多くなり、アプレットの起動に時間がかかります。このため、Javaフォームが多くなる場合は、アプレットをいくつかに分割し、アプレット間はHTMLページで画面遷移を行うようにします。

ここでは、複数のアプレットを連携する場合の留意点について以下に説明します。

+HTMLページの設計

アプレットを分割してHTMLページで画面遷移を行う場合、HTMLページ間でデータを引き継ぐ必要があります。一般的には、アプレットを1つ常駐させ、データを保持するようにします。終了処理は、データ保持用のアプレットが終了するタイミングで行います。
データ保持用のアプレットを常駐させるには、別のウィンドウを表示する方法と、フレームを使う方法があります。

++別のウィンドウを表示する

新しくWebブラウザのウィンドウを作成し、そのウィンドウでHTML画面遷移を行います。元のウィンドウでは、データ保持用のアプレットを実行しておきます。新しいウィンドウを作成するときに、JavaScriptを用いてウィンドウの形式を制御することができます。

++フレームを使う

HTMLのフレームのうち、1つのフレームを固定とし、データ保持用のアプレットを実行します。

ADControllerクラスをメモリに残すことによって、データ保持用のアプレットを使用しない方法も可能です。ただし、この方法では終了処理を行うタイミングが不明になるため、アプレット間でセションを共用するなどの終了処理が必要な場合には適用できません。
この方法を使う場合は、ADControllerクラスの作成時に第3パラメタをtrueと指定します。
controller = new ADController("GROUP1", this, true);
このあとに共通データとして設定されたデータは、Webブラウザが終了するまでメモリ上に保持されます。

+HTML遷移で動作するアプレットの作成

HTML遷移で動作するアプレットは、"Javaフォームをアプレットにまとめる"と同様に作成しますが、以下の相違があります。

++アプレットからの画面遷移先を別のHTML画面にする場合

画面の識別名に対して、HTML名を登録します。たとえば、"SCR5678"という識別名に対して、"nextscreen.html"というHTMLを対応付け、表示先のターゲット名(フレームまたはウィンドウ)を"frame1"とする例を以下に示します。

controller.addADComponent("SCR5678",
      new URL(getDocumentBase(), "nextscreen.html"), "frame1");

++HTML遷移を行うアプレットの場合

stop()メソッドで、アプレット内に閉じているものだけ終了処理を行います。HTML間で共用するものは、ここでは終了処理をしません。

+データ保持用のアプレットの作成

データ保持用のアプレットの画面は任意に作成します。たとえば、イメージの表示、または強制終了ボタンをもつことができます。
データ保持用のアプレットでは、ADControllerクラスのインスタンスを保持します。データを1つ書きこむことにより、共通データを保持できるようになります。

// ADControllerを作成します。
controller = new ADController("GROUP1", this, false);
// ダミーデータを書きこむことにより、データの保持を開始します。
controller.setADProperty("dummy", "dummy data", true);

データ保持用のアプレットでは、stop()メソッドでアプレット間にまたがるセションの終了処理が必要です。別のウィンドウを表示している場合、JavaScriptを用いてそのウィンドウを閉じることが可能です。その場合は、stop()メソッドを使用して行います。

+JavaScriptでウィンドウを制御する

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");

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

All Rights Reserved, Copyright (C) 富士通株式会社 1998-2006