ビジュアルモバイルデザイナのカスタムコンポーネント: モバイルアプリケーション用の待機画面の作成
Java ME アプリケーションが適切に動作するために、ネットワークへの接続が必要になることがよくあります。ところが、ワイヤレスネットワークは現在でも比較的低速です。ネットワーク接続やデータ転送を待機するバックグラウンドタスクによってアプリケーションが一時停止した場合に、表示画面が完全に固まってしまったのか、中止してあとでやり直したほうがいいのか、判断に迷うことがあります。このようなユーザーにとって不愉快で、ありがちな事態に、開発者はどのように対処したらよいでしょうか。
答えは「待機画面」を追加することです。待機画面では、ユーザーがバックグラウンド作業 (ネットワークへの接続など) のブロックを実行したり、作業の進捗状況を表示したり、アプリケーションが正常に動作中であることをユーザーに通知するメッセージを画面に表示することができます。このチュートリアルでは、ビジュアルモバイルデザイナ (VMD) を使用して、カスタマイズ可能でアプリケーションフローに追加できる待機画面カスタムコンポーネントを含めることによって、待機画面の作成を簡素化する方法を示します。
NetBeans でのモバイルアプリケーション開発に習熟していない場合、次に進む前に「NetBeans Java ME MIDP 開発のクイックスタートガイド」から始めることをお勧めします。
注: NetBeans IDE 6.8 を使用している場合、「モバイルアプリケーション用の待機画面の作成」(NetBeans IDE 6.8) チュートリアルを参照してください。
目次
このチュートリアルを完了するには、次のソフトウェアとリソースが必要です。
待機画面コンポーネントの動作方法
待機画面コンポーネントのためのバックグラウンドタスクの作成には、2 種類の方法があります。取消可能タスクインタフェースを実装するクラスを記述するか、または簡易取消可能タスクリソースを使用できます。setTask() メソッドを使用して、バックグラウンドタスクを待機画面に割り当てることができます。
待機画面コンポーネントでは、バックグラウンドタスクの完了時に、表示可能な別のオブジェクトへの切り替えが自動的に行われます。タスクが正常に終了した場合、待機画面は setNextDisplayable() メソッドによって提供される画面に切り替わります。タスクが正常に終了しなかった場合、待機画面は setFailureDisplayable() メソッドによって提供される画面に切り替わります。デフォルトの表示可能なオブジェクトが設定されていない場合、待機画面は setNextDisplayable() メソッドで指定される画面に切り替わります。次に表示可能な画面が設定されていない場合、待機画面は以前に表示された画面に戻ります。
このコンポーネントは、MIDP 2.0 デバイスプロファイルがサポートされたアプリケーションでのみ使用できます。
ページの先頭へ
サンプルアプリケーションのインストールと実行
始める前に、チュートリアルの最終結果を確認します。
次の手順で waitscreenexample サンプルアプリケーションをインストールします。
- WaitScreenExample.zip をダウンロードします。
- ファイルを展開します。
- IDE で、「ファイル」>「プロジェクトを開く」を選択し、展開したファイルがあるフォルダを選択します。
- 「プロジェクトを開く」をクリックします。
「プロジェクト」ビューは次のように表示されるはずです。
- 「プロジェクト」ウィンドウでプロジェクトノードを右クリックし、「実行」を選択します (または F6 キーを押す)。アプリケーションが実行されると、エミュレータウィンドウが開き、デフォルトのデバイスエミュレータでアプリケーションが実行されるところが表示されます。
- 「エミュレータ」ウィンドウで「起動」の下のボタンをクリックします。エミュレータに NetBeans Web サイトの URL アドレスである http://netbeans.org が表示されます。
- 「OK」の下のボタンをクリックします。通信時間を使用してよいかどうかを尋ねる画面が表示されます。
- 「Yes」の下のボタンをクリックして続行します。エミュレータで Web サイトへの接続が試行され、待機画面が表示されます。
- エミュレータを接続したら、アプリケーションを閉じます。
ページの先頭へ
待機画面カスタムコンポーネントを使用したモバイルアプリケーションの作成
WaitScreenExample プロジェクトの作成
- 「ファイル」>「新規プロジェクト」(Ctrl-Shift-N) を選択します。「カテゴリ」から「Java ME」を選択します。「プロジェクト」で「モバイルアプリケーション」を選択して、「次へ」をクリックします。
- 「プロジェクト名」フィールドに「
WaitScreenExample」と入力します。「プロジェクトの場所」をシステム上の任意のディレクトリに変更します。このディレクトリを $PROJECTHOME とします。
- 「Hello MIDlet を作成」チェックボックスの選択を解除します。「次へ」をクリックします。
- 「エミュレータプラットフォーム」は、「Sun Java Wireless Toolkit 2.5.2」を選択したままにしておきます。「完了」をクリックします。
WaitScreenExample プロジェクトへのパッケージとビジュアル MIDlet の追加
- 「プロジェクト」ウィンドウで
WaitScreenExample プロジェクトを選択し、「ファイル」>「新規ファイル」(Ctrl-N) を選択します。「カテゴリ」から「Java」を選択します。「ファイルの種類」として「Java パッケージ」を選択します。「次へ」をクリックします。
- 「パッケージ名」フィールドに「
waitscreenexample」と入力します。「完了」をクリックします。
- 「プロジェクト」ウィンドウで
waitscreenexample パッケージを選択し、「ファイル」>「新規ファイル」(Ctrl-N) を選択します。「カテゴリ」にある「MIDP」を選択します。「ファイルの種類」として「ビジュアル MIDIlet」を選択します。「次へ」をクリックします。
- 「MIDlet 名」フィールドと「MIDP クラス名」フィールドに「
MyWaitScreenMidlet」と入力します。「完了」をクリックします。
MyWaitScreenMidlet へのコンポーネントの追加
「ビジュアル MIDlet」を選択してビジュアルモバイルデザイナ (VMD) を開きます。VMD ウィンドウ最上部の「フロー」ビューをクリックしてフローデザイナを開き、ここでアプリケーションフローを設計します。
- ビジュアル MIDlet を「フロー」ビューに切り替えます。次の画面コンポーネントをコンポーネントパレットからドラッグし、フローデザイナにドロップします。
- 「textBox」を選択します。コンポーネントパレットの下の「プロパティー」ウィンドウで、「タイトル」プロパティーを「
Text Box」に変更します。
- 次のコンポーネントに対し、同じ操作を実行してタイトルを変更します。
- 次の各コンポーネントに対して、プロパティーの値を使用します。
-
textBox のテキストプロパティーを「http://netbeans.org」に変更
-
alert の文字列プロパティーを「Connection Failed」に変更
-
WaitScreen のテキストプロパティーを「Please Wait...」に変更
「フロー」ビューは、次の画像のように表示されるはずです。

画像リソースの追加
このセクションでは、待機画面と警告画面に使用する画像を追加します。
- alert.png ファイルと sandglass.png ファイルをダウンロードして
$PROJECTHOME/src/waitscreenexample フォルダにコピーします。
- alert コンポーネントを右クリックし、ポップアップメニューから「プロパティー」を選択します。
- 「プロパティー」ダイアログボックスで、「画像」プロパティーの省略符号ボタン (
) をクリックします。
- 「画像」ダイアログで「追加」をクリックします。
image1 コンポーネントが追加されます。
- 「参照」をクリックし、「開く」ダイアログボックスで、コピーされた alert.png ファイルへのパスを指定します。
- 「開く」をクリックします。
画像が追加されます。
- 「了解」をクリックして「画像」ダイアログボックスを閉じます。
- 「閉じる」をクリックして「プロパティー」ダイアログボックスを閉じます。
alert.png の画像は alert コンポーネントにバインドされます。
- waitScreen コンポーネントについて、手順 2 から 8 を繰り返し、sandglass.png を image2 として追加し、これをコンポーネントにバインドします。
了解コマンド、戻るコマンド、および終了コマンドをテキストボックスコンポーネントと待機画面コンポーネントに追加
- パレットの「コマンド」セクションで了解コマンドを選択します。これを textBox にドラッグ&ドロップします。
- パレットの「コマンド」セクションで戻るコマンドを選択します。これを list にドラッグ&ドロップします。
- パレットの「コマンド」セクションで終了コマンドを選択します。これを list にドラッグ&ドロップします。
アプリケーションフローの作成
これで、アプリケーションフローを作成する準備ができました。
- 「フロー」ビューで、モバイルデバイスの「起動」をクリックし、それを textBox コンポーネントまでドラッグします。
- 同様に、次の図に示すようにコンポーネントを接続します。

待機画面のバックグラウンドタスクの作成
- 「フロー」ビューで、waitScreen コンポーネントを右クリックし、ポップアップメニューから「プロパティー」を選択します。
- 「プロパティー」ダイアログボックスで、「タスク」ドロップダウンメニューから <NewCancellableTask> を選択し、「閉じる」をクリックします。
これで、simpleCancellableTask が waitScreen コンポーネントのバックグラウンドタスクになりました。
- ビジュアルモバイルデザイナの最上部にある「ソース」ボタンをクリックして、アプリケーションのソースコードに切り替えます。
MyWaitScreenMIDlet ソースコードの public void destroyapp(boolean unconditional) { } のあとに次のコードをペーストすることによって、バックグラウンドタスク用のメソッドを追加します。
private void getServerInfo() throws IOException {
String url = textBox.getString();
list.deleteAll();
/**
* HttpConnection を開く
*/
HttpConnection hc = (HttpConnection) Connector.open(url);
/**
* 索引でヘッダーフィールドキーとヘッダーフィールドを
* 取得し、list に挿入する。
*/
list.setTitle(hc.getURL());
for (int i=0;hc.getHeaderFieldKey(i)!=null; i++){
list.insert(i,hc.getHeaderFieldKey(i)+" :"+hc.getHeaderField(i),null);
}
/**
* 終了時 ...
*/
hc.close();
}
- ソースコードを右クリックし、ポップアップメニューで「インポートを修正」を選択します (または、Ctrl+Shift+I キーを押します)。
- public class MyWaitScreenMidlet extends MIDlet implements CommandListener { 文字列 (18 行目) を見つけ、final を挿入すると、次のようになります。
public final class MyWaitScreenMidlet extends MIDlet implements CommandListener {
- ソースコードから public MyWaitScreenMidlet() メソッドを見つけ (38 行目)、public MyWaitScreenMidlet() { のあとに次のコードを挿入します。
List list1 = getList();
- 「画面」をクリックして「画面」ビューに切り替え、SimpleCancellableTask を選択します。
- 「プロパティー」ウィンドウで、「実行可能コード」プロパティーの省略符号ボタン (
) をクリックします。
- 「実行可能コード」ダイアログボックスで「ソースへ移動」をクリックします。
- ソースコードから getSimpleCancellableTask() メソッドを見つけ (328 行目)、public void execute() throws Exception { のあとの // write task-execution user code here という場所に次のコードを挿入します。
getServerInfo();
プロジェクトの実行
F6 キーを押して主プロジェクトを実行します。
「実行」>「主プロジェクトを実行」を選択する方法もあります。
ページの先頭へ
待機画面コンポーネントと簡易取消可能タスクコンポーネントの Javadoc
NetBeans IDE には、VMD で使用できるほかのコンポーネントと同様に、待機画面コンポーネントや簡易取消可能タスクコンポーネントに関する API Javadoc が用意されています。待機画面コンポーネントおよび簡易取消可能タスクコンポーネントの Javadoc を表示するには、次の手順を実行します。
- ソースコードの待機画面コンポーネントまたは簡易取消可能タスクコンポーネントにカーソルを合わせ、Ctr-Shift- スペースキーを押します (または「ソース」>「ドキュメントを表示」を選択します)。
この要素の Javadoc がポップアップウィンドウに表示されます。
- ポップアップウィンドウで「外部 Web ブラウザにドキュメントを表示」アイコン (
) をクリックすると、待機画面コンポーネントまたは簡易取消可能タスクコンポーネントについての詳細な情報がブラウザに表示されます。
ページの先頭へ
関連項目
ページの先頭へ