ビジュアルモバイルデザイナのカスタムコンポーネント: ファイルブラウザ
執筆: Karol Harezlak
ビジュアルモバイルデザイナ(VMD) は NetBeans Mobility Pack に含まれるグラフィカルインタフェースです。コンポーネントをドラッグ&ドロップすることでモバイルアプリケーションをデザインできます。VMD を使用すると、Mobility Pack に含まれるコンポーネントまたは独自にデザインしたコンポーネントを使用してアプリケーションフローを定義し、GUI をデザインできます。VMD には、リスト、警告、フォーム、画像など、アプリケーションの作成に使用できる標準のユーザーインタフェース (UI) コンポーネントが多数含まれます。また、待機画面、スプラッシュ画面、表項目など、より複雑な機能を簡単に作成できるカスタムコンポーネントも含まれます。
ファイルブラウザは、デバイスのファイルシステムを操作するためのユーザーインタフェースを備えたカスタムコンポーネントです。デバイスの記憶領域の内容を表示するための基本的な機能を備えています。このコンポーネントでは、JSR-75 (PDA Optional Packages for the Java ME Platform) 仕様の一部である FileConnection API が使用されます。JSR-75 は MIDP 2.0 仕様の一部ではないので、このカスタムコンポーネントは JSR-75 対応のデバイスだけに使用できます。
アプリケーションの概要
この例では、JSR-75 対応デバイス用モバイルアプリケーションでファイルブラウザコンポーネントを使用する方法を示します。各コンポーネントの基本機能、デバイスの記憶領域の内容を参照する方法、また選択されたテキストファイルの内容を表示する方法を学びます。
「ファイルブラウザ」カスタムコンポーネントのほかに、スプラッシュ画面とテキストボックスの 2 つの MIDP コンポーネントを使用します。
要件
開始する前に、コンピュータに次のソフトウェアをインストールしておく必要があります。
サンプルアプリケーションのインストールと実行
始める前に、チュートリアルの最終結果を確認します。
次の手順で FileBrowserExample アプリケーションをインストールします。
- filebrowserexample.zip をダウンロードします。
- ファイルを展開します。
- IDE で、「ファイル」>「プロジェクトを開く」を選択し、展開したファイルがあるフォルダを選択します。
- 「プロジェクト」ウィンドウと「ナビゲータ」ウィンドウを開きます。画面は次のようになります。
- 「プロジェクト」ウィンドウでプロジェクトノードを右クリックし、「プロジェクトを実行」を選択するか、F6 キーを押します。アプリケーションが実行されると、エミュレータウィンドウが開き、デフォルトのデバイスエミュレータでアプリケーションが実行されるところが表示されます。
「エミュレータ」ウィンドウで「起動」の下のボタンをクリックします。
エミュレータにスプラッシュ画面コンポーネントが表示されてから、次に示すファイルブラウザが表示されます。
- 使用可能なファイルやフォルダ間を移動するにはカーソルを上下に移動します。
- フォルダまたはファイルを開くには、「Select」の下のボタンをクリックします。
- アプリケーションを終了するには、「Exit」の下のボタンをクリックします。
「ファイルブラウザ」カスタムコンポーネントを使用したアプリケーションの作成
ファイルブラウザコンポーネントが実際に動作するところを確認できたので、最初に戻ってこのアプリケーションを作成します。アプリケーションを作成するには、次の手順を実行します。
- FileBrowserExample プロジェクトを作成する
- FileBrowserExample プロジェクトにパッケージとビジュアル MIDlet を追加する
- FileBrowserExample にコンポーネントを追加する
- テキストボックスとファイルブラウザの各コンポーネントにコマンドを追加する
- コンポーネントを接続してアプリケーションフローを作成する
- メソッド loadTextFile をソースコードに挿入する
- Wireless Toolkit の記憶領域にファイルを追加する
プロジェクトを実行する
FileBrowserExample プロジェクトの作成
- 「ファイル」>「新規プロジェクト」(Ctrl-Shift-N) を選択します。「カテゴリ」で「Mobility」を選択します。「プロジェクト」で「MIDP アプリケーション」を選択して、「次へ」をクリックします。
- 「プロジェクト名」フィールドに
FileBrowserExample と入力します。「プロジェクトの場所」をシステム上の任意のディレクトリに変更します。以降、この例では、このディレクトリを $PROJECTHOME とします。
- 「Hello MIDlet を作成」チェックボックスの選択を解除します。「次へ」をクリックします。
- 「ターゲットプラットフォーム」は、「Java ME Wireless Toolkit」を選択したままにしておきます。「次へ」をクリックします。
「完了」をクリックします。
このプロジェクトフォルダには、ソースおよび、プロジェクトの Ant スクリプトなどのプロジェクトメタデータのすべてが含まれます。アプリケーション自体はビジュアルモバイルデザイナの「フローデザイン」ウィンドウに表示されます。
FileBrowserExample プロジェクトへのパッケージとビジュアル MIDlet の追加
- 「プロジェクト」ウィンドウで
FileBrowserExample プロジェクトを選択し、「ファイル」>「新規ファイル」(Ctrl-N) を選択します。「カテゴリ」から「Java クラス」を選択します。「ファイルの種類」として「Java パッケージ」を選択します。「次へ」をクリックします。
- 「パッケージ名」フィールドに
filebrowserexample と入力します。「完了」をクリックします。
- 「プロジェクト」ウィンドウで
filebrowserexample パッケージを選択し、「ファイル」>「新規ファイル」(Ctrl-N) を選択します。「カテゴリ」にある「MIDP」を選択します。「ファイルの種類」として「ビジュアル MIDIlet」を選択します。「次へ」をクリックします。
「MIDlet 名」フィールドと「MIDP クラス名」フィールドに FileBrowserExample と入力します。「完了」をクリックします。
FileBrowserExample へのコンポーネントの追加
- ビジュアル MIDlet を「フローデザイナ」ウィンドウに切り替えます。次のコンポーネントをコンポーネントパレットからドラッグし、フローデザイナにドロップします。
- スプラッシュ画面
- テキストボックス
- ファイルブラウザ
splashScreen をクリックし、「プロパティー」ウィンドウで「テキスト」プロパティーの値を「null」から「File Browser Example」に変更します。
FileBrowserExample へのコマンドの追加
- 「フローデザイナ」ウィンドウを開きます。
- コンポーネントパレットの「コマンド」セクションで終了コマンドを選択します。このコマンドをドラッグし、「フローデザイナ」ウィンドウ (fileBrowser コンポーネント) にドロップします。
コンポーネントパレットの「コマンド」セクションで戻るコマンドを選択し、textBox コンポーネントにドラッグ&ドロップします。
コンポーネントの接続
「フロー」デザインウィンドウで、モバイルデバイスの「起動」をクリックし、splashScreen コンポーネントまでドラッグします。同様に、次の図に示すようにコンポーネントを接続します。
ソースコードへのアクション前コードの挿入
- 「ソース」ウィンドウに切り替えます。
-
ソースコードの末尾に次のコードを挿入します。このメソッドは、選択されたファイルを読み取ります。
/**
* Read file
*/
private void readFile() {
try {
FileConnection textFile = fileBrowser.getSelectedFile();
getTextBox().setString("");
InputStream fis = textFile.openInputStream();
byte[] b = new byte[1024];
int length = fis.read(b, 0, 1024);
fis.close();
if (length > 0) {
textBox.setString(new String(b, 0, length));
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
ソースコード内で commandAction メソッドを探します。
readFile(); を、FileBrowser.SELECT_FILE_COMMAND のアクション前セクション (if (command == FileBrowser.SELECT_FILE_COMMAND) の直後の //insert pre-action code here とある箇所) に挿入します。
Wireless Toolkit の記憶領域へのファイルの追加
WTK の記憶領域にファイルを追加する方法については、『Sun Java Wireless Toolkit for CLDC User's Guide』の「Using the Emulator」の章 (第 4.3.2.1 項「Persistent Storage」) を参照してください。追加したファイルやフォルダはファイルブラウザアプリケーションに表示されます。
プロジェクトの実行
-
F6 キーを押すか、「実行」>「主プロジェクトを実行」を選択して主プロジェクトを実行します。
ファイルブラウザコンポーネントの詳細情報
NetBeans IDE には、ファイルブラウザコンポーネントや、VMD で使用できるその他のコンポーネントに関する API Javadoc が用意されています。ファイルブラウザコンポーネントの Javadoc を表示するには、次の手順を実行します。
- 「ヘルプ」>「Javadoc 参照」>「org.netbeans.microediton.lcdui.pda」を選択します。
-
org.netbeans.microedition.lcdui.pda をクリックすると、コンポーネント情報へのリンクが表示されます。
関連するチュートリアル