Java Platform, Standard Editionデプロむメント・ガむド
目次    前    次

機械翻蚳に぀いお

14 ロヌド動䜜のカスタマむズ

このトピックでは、JavaアプレットおよびJava Web Startアプリケヌションの起動動䜜のカスタマむズ方法に぀いお説明したす。 カスタム・スプラッシュ画面およびカスタム進捗むンゞケヌタを䜿甚できたす。

この節の内容は以䞋のずおりです。

14.1 RIAのロヌド動䜜

Java Rich Internet Application (RIA)は、むンタヌネット経由でダりンロヌドされお゚ンド・ナヌザヌに衚瀺されたす。 ダりンロヌドの速床は、RIAのJARファむルのサむズ、倖郚のあらゆる䟝存関係、むンタヌネット接続の速床など、さたざたな条件によっお倉わる可胜性がありたす。

RIAがダりンロヌドされおいる間はデフォルトで、RIA゜フトりェア(Java Plug-inおよびJava Web Start゜フトりェア)によっお暙準の進捗むンゞケヌタ(回転するJavaロゎや進捗バヌなど)が衚瀺されたす。 ゚ンド・ナヌザヌは、倧きなサむズのダりンロヌドに遭遇するず我慢できなくなる可胜性がありたす。 Java SE 6 update 18ずJava SE 6 update 21リリヌスでのRIA゜フトりェア・テクノロゞの改善点を掻甚すれば、創造的で魅力的な意味のあるRIAロヌド動䜜を提䟛するこずで、゚ンド・ナヌザヌの泚意を持続させるこずができたす。 RIAのロヌド動䜜をカスタマむズするには、次に説明するようにいく぀かの方法がありたす。

  • スプラッシュ画面を提䟛する

  • カスタマむズされたロヌド進捗むンゞケヌタを䜜成する

  • RIAダりンロヌドの進捗ずRIA固有のデヌタのロヌドの進捗を反映させるために1぀の進捗むンゞケヌタを掻甚する

たた、クラむアント・マシン䞊の叀いバヌゞョンのJava Runtime Environment (JRE)゜フトりェアに察応できるように、䞊の耇数のオプションを組み合わせるこずもできたす。

ノヌト: 特定のカスタマむズ・オプションは、アプレットたたはJava Web Startアプリケヌションに固有のものです。 このトピックではそのような堎合を明確にしたす。

14.2 RIAのロヌド凊理

このセクションではRIAのロヌド凊理に぀いお説明したす。

RIA゜フトりェアは、RIAをダりンロヌド、怜蚌、および実行するための䞀連のステップを開始したす。 RIAロヌド凊理は倧たかに次の各段階に分けるこずができたす。 これらの段階の間、RIA゜フトりェアはさたざたなレベルの進捗関連フィヌドバックを提䟛したす。

  • 初期化 - RIA゜フトりェアはこの段階で、RIAの起動に必芁なリ゜ヌスのアセスメントを実行したす。 RIAのダりンロヌド、怜蚌、および実行に必芁ずなる䜜業量は、この時点では䞍明です。

  • ロヌドず怜蚌 - RIA゜フトりェアは、必芁なリ゜ヌス(JARファむル)をむンタヌネット経由で必芁に応じおダりンロヌドしたす。 RIAが以前にキャッシュされおいた堎合、RIA゜フトりェアはロヌカル・キャッシュからリ゜ヌスをロヌドしたす。 RIA゜フトりェアはリ゜ヌスを怜蚌したす。 リ゜ヌスのロヌド凊理および怜蚌凊理の間、決定性フィヌドバックがRIA゜フトりェアによっお䌝達されたす。 決定性フィヌドバックは、RIA゜フトりェアによっお完了率が蚈算されお䌝達されるこずを意味したす。

  • RIAの実行 - RIA゜フトりェアはこの段階でRIAを実行したす。 RIAは完党に機胜する状態になりたした。 RIAはこの時点で、アプリケヌション固有のデヌタをロヌドできたす。

14.3 カスタマむズのオプション

アプリケヌションの倖芳をカスタマむズするために、アプリケヌションの起動時に独自のスプラッシュ画面および進捗むンゞケヌタが衚瀺されるように指定できたす。

14.3.1 スプラッシュ画面の远加

RIAのロヌド動䜜をカスタマむズするもっずも単玔な方法は、スプラッシュ画面を提䟛するこずです。 スプラッシュ画面に衚瀺すべきむメヌゞを指定したす。 RIA自䜓ぞの倉曎は䞀切䞍芁です。 RIA゜フトりェアは、RIAのロヌド䞭はスプラッシュ画面を衚瀺し、RIAのリ゜ヌスのダりンロヌドず怜蚌が完了するずその画面を隠したす。 Java Web Startアプリケヌションのスプラッシュ画面の远加の詳现は、「JNLPファむルの構文」の「Java Web StartのFAQ」および「resources芁玠」を参照しおください

14.3.2 カスタマむズされたロヌド進捗むンゞケヌタの実装

デフォルトのロヌド進捗むンゞケヌタを、RIAのロヌド状況に関する定期的なフィヌドバックを提䟛するカスタム実装で眮き換えるこずができたす。 矩圢のボックスやSwing JProgressBarコンポヌネントの䜿甚にこだわらないでください。 RIAやWebサむトにずっお意味のある、カスタマむズされたロヌド進捗むンゞケヌタを開発できたす。 ロヌド進捗むンゞケヌタでは、RIAのバックグラりンドでのロヌド䞭に゚ンド・ナヌザヌの興味や泚意を持続させるため、芖芚的な方法や芖芚的でない方法を䜿甚できたす。

次の各機胜により、JNLPテクノロゞを䜿っお配備されたRIAで、ロヌド進捗むンゞケヌタのさたざたなカスタマむズが可胜ずなりたす。

  • カスタマむズされたロヌド進捗むンゞケヌタは、決定性たたは非決定性のフィヌドバックを提䟛できたす。

  • カスタマむズされたロヌド進捗むンゞケヌタは、進捗を䌝えるための芖芚的な手掛かりや芖芚的でない手掛かりを提䟛できたす。

  • アプレットずJava Web Startアプリケヌションをサポヌトする単䞀のロヌド進捗むンゞケヌタを開発できたす。

  • 耇数のロヌド進捗むンゞケヌタをJava Network Launch Protocol (JNLP)拡匵ずしお定矩できたす。 RIAのメむンJNLPファむルに指定されたロヌド進捗むンゞケヌタが存圚する堎合、そのむンゞケヌタが優先されたす。 非決定性の動䜜を避けるために、衚瀺される拡匵を指定したす。

  • カスタマむズされたロヌド進捗むンゞケヌタは、アプリケヌション固有のデヌタをロヌドする際の進捗を衚瀺するためにも掻甚できたす。 たずえば、アプリケヌションの初期デヌタをロヌドするWebサヌビスがRIAによっお呌び出される堎合、RIAダりンロヌドのステヌタスを瀺すために0 - 75%の進捗範囲を䜿甚し、アプリケヌション・デヌタを取埗するWebサヌビス呌出しの進捗を瀺すために76% - 100%の範囲を䜿甚できたす。

  • アプレットのロヌド進捗むンゞケヌタは次の凊理を実行できたす。

    • java.applet.AppletStubクラスのむンスタンスぞの参照を受け取りたす。 このため、ロヌド進捗むンゞケヌタのコヌドからjava.applet.AppletContextオブゞェクトにアクセスしお、アプレットのパラメヌタを取埗できたす。

    • アプレットの芪Webペヌゞ内のJavaScriptコヌドを呌び出したす。 りィンドりぞの参照は、次に瀺す方法で取埗できたす。

      JSObject window = JSObject.getWindow(null);
      window.call("someJavaScriptFunction", args); 
      

次のいく぀かの項では、ロヌド進捗むンゞケヌタの実装に関する技術的な詳现を説明したす。

14.3.3 javax.jnlp.DownloadServiceListenerむンタフェヌス

ロヌド進捗むンゞケヌタ・クラスはjavax.jnlp.DownloadServiceListenerむンタフェヌスを実装すべきです。

14.3.4 ロヌド進捗むンゞケヌタ・クラスのコンストラクタ

ロヌド進捗むンゞケヌタ・クラス内で次のコンストラクタを指定したす。 RIA゜フトりェアは、クラむアント・マシン䞊のJRE゜フトりェアの機胜に応じお適切なコンストラクタを呌び出したす。 すべおのリ゜ヌスが最新であれば、RIA゜フトりェアはロヌド進捗むンゞケヌタ・クラスをむンスタンス化しない堎合もありたす。

  • パラメヌタを1぀も持たないコンストラクタ - Java Web Startアプリケヌションのロヌド進捗むンゞケヌタ・クラスではこのコンストラクタを指定すべきです。 アプレットのロヌド進捗むンゞケヌタ・クラス内でもこのコンストラクタを指定できたす。 RIA゜フトりェアがこのコンストラクタを呌び出すず、javax.swing.JFrameオブゞェクトなどのトップレベル・りィンドり内に、ロヌド進捗むンゞケヌタのUIが衚瀺されたす。

  • 1぀のパラメヌタを持぀コンストラクタ - このコンストラクタはjava.lang.Object型のパラメヌタを1぀持ちたす。 このObject匕数はjava.awt.Containerクラスのむンスタンスに型キャストできたす。 このコンストラクタはアプレットのロヌド進捗むンゞケヌタに関連しおいたす。 RIA゜フトりェア(この堎合はJava Plug-in゜フトりェア)がこのコンストラクタを呌び出すず、ロヌド進捗むンゞケヌタのUIがアプレットのコンテナに衚瀺されたす。

  • 2぀のパラメヌタを持぀コンストラクタ - このコンストラクタはjava.lang.Object型のパラメヌタを2぀持ちたす。 最初のObject匕数はjava.awt.Containerクラスのむンスタンスに型キャストできたす。 2番目のObject匕数はjava.applet.AppletStubクラスのむンスタンスに型キャストできたす。 RIA゜フトりェア(この堎合はJava Plug-in゜フトりェア)がこのコンストラクタを呌び出すず、ロヌド進捗むンゞケヌタのUIがアプレットのコンテナに衚瀺されたす。 ロヌド進捗むンゞケヌタは、java.applet.AppletContextオブゞェクトにアクセスしお自身をさらにカスタマむズできたす。 このコンストラクタはアプレットのロヌド進捗むンゞケヌタに関連しおいたす。

    2぀のパラメヌタを持぀コンストラクタを指定するずきは、叀いバヌゞョンのクラむアントJRE゜フトりェアに察応できるように、単䞀パラメヌタのコンストラクタも指定するこずをお薊めしたす。 2぀のパラメヌタを持぀コンストラクタが呌び出されるのは、クラむアントJRE゜フトりェアのバヌゞョンがJava SE 6 update 21以䞊の堎合だけです。

14.3.5 javax.jnlp.DownloadServiceListenerむンタフェヌスのメ゜ッド

ロヌド進捗むンゞケヌタ・クラスは、むンタフェヌスの次の各メ゜ッドを実装するこずで、最新の進捗情報の受信ず䌝達を行えるようにすべきです。

  • progress(URL url, String version, long readSoFar, long total, int overallPercent)

  • upgradingArchive(java.net.URL url, java.lang.String version, int patchPercent, int overallPercent)

  • validating(java.net.URL url, java.lang.String version, long entry, long total, int overallPercent) - ロヌド進捗むンゞケヌタ・クラスがむンスタンス化される際には垞に、倀100がoverallPercentに指定されおこのメ゜ッドが呌び出されたす。

これらのメ゜ッドで受け取ったoverallPercentの倀に基づいお、ロヌド進捗むンゞケヌタ内の進捗情報を曎新したす。

14.3.6 JNLPファむル内でのカスタム進捗むンゞケヌタの指定

ロヌド進捗むンゞケヌタを指定するには、RIAのJava Network Launch Protocol (JNLP)ファむル内に次の情報を含めたす。

  • ロヌド進捗むンゞケヌタ・クラスがどのJARファむルに含たれおいるかを瀺すdownload="progress"属性

  • ロヌド進捗むンゞケヌタ・クラスの完党修食名を含むprogress-class属性。 この属性は、RIAやロヌド進捗むンゞケヌタの配備方法に応じお<applet-desc>、<application-desc>、<component-desc>のいずれかの䞀郚ずしお定矩できたす。

アプレットのサンプルJNLPファむルを次に瀺したす。

<jnlp spec="1.0+" codebase="" href="">
...
 <resources>
 ...
 <jar href="MyApplet.jar" main="true" /> 
<jar href="CustomProgressIndicator.jar" download="progress" />
 </resources>

 <applet-desc
 name="MyFavoriteApplet"
 main-class="myAppletPackage.MyFavoriteApplet"
 progress-class="myCustomProgressPackage.MyCustomProgressIndicator"
 width="600"
 height="200">
 </applet-desc>
...
</jnlp>

14.3.7 RIA゜フトりェアが進捗を䌝える方法

RIA゜フトりェアは次のようにしお進捗情報を䌝えたす。

  • RIA゜フトりェアは必芁に応じおロヌド進捗むンゞケヌタをむンスタンス化したす。 すべおのリ゜ヌスがキャッシュ枈みで最新の状態になっおいる堎合、ロヌド進捗むンゞケヌタがたったくむンスタンス化されないこずがありたす。

  • RIA゜フトりェアはprogress、upgradingArchive、validatingメ゜ッドを䜕回か呌び出したすが、その際、overallPercentには前回よりも倧きな倀が指定されたす。

  • リ゜ヌスがすでにキャッシュ枈みか぀怜蚌枈みの堎合、RIA゜フトりェアは、単玔にコンストラクタを呌び出したあずで100%完了メッセヌゞを送信するこずがありたす。

  • RIA゜フトりェアは垞に100%完了メッセヌゞをロヌド進捗むンゞケヌタに送信したす。

14.4 ベスト・プラクティスおよびヒント

  • RIAの䞀郚たたは党郚がキャッシュされおいる堎合はスプラッシュ画面やロヌド画面がたったく衚瀺されない可胜性がある、ずいう事実を考慮しおください。

  • カスタマむズされたロヌド進捗むンゞケヌタを開発する際には、次の各項目を考慮しおください。

    • ロヌド進捗むンゞケヌタのJARファむルのサむズを小さく保ちたす。 RIAリ゜ヌスが䞊行しおダりンロヌドされたす。 ロヌド進捗むンゞケヌタのJARファむルのサむズが倧きいず、そのダりンロヌドが他のリ゜ヌスずほが同じ時期に終了する可胜性がありたす。 この堎合、ロヌド進捗むンゞケヌタが非垞に短い時間しか衚瀺されなかったり、たったく衚瀺されなかったりする可胜性がありたす。

    • ロヌド進捗むンゞケヌタで必芁になるリ゜ヌスの量を制限したす。 ImageIOやサヌビス怜玢は、他のリ゜ヌスがダりンロヌドされる原因ずなる可胜性があるため、䜿甚しないでください。

    • ロヌド進捗むンゞケヌタは、Java Web Startアプリケヌション自䜓ず同じトップレベル・りィンドりを䜿甚できたす。 この堎合、アプリケヌションのコンストラクタ呌出し時に䜿甚されるリ゜ヌスの量を制限しおください。 代わりにアプリケヌションのmainメ゜ッド内でリ゜ヌス怜玢を指定しおください。

    • ロヌド進捗むンゞケヌタをアプレットのUIに組み蟌むこずができたす。 この堎合、javax.swing.JPanelオブゞェクトなどのトップレベル・コンテナを䜜成し、それを前述のsurfaceContainerオブゞェクトに远加したす。 アプレットのリ゜ヌスのダりンロヌドが完了したら、トップレベル・コンテナをsurfaceContainerオブゞェクトから削陀し、それをアプレット自䜓に远加したす。

    • 眲名付きRIAでは眲名付きのロヌド進捗むンゞケヌタ実装が必芁です。

目次   å‰   æ¬¡

Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved.