アプリ版:「スタンプのみでお礼する」機能のリリースについて

最近Javaでiアプリを作り始めた者です。
リソースにあるテキストファイルを取得して、内容をそのまま画面に出すアプリを作っています(最終的にはゲームが作りたく、そのための練習です)。
本を読むなりしているのですが、どうしても分からないので質問させて頂きます。

import com.nttdocomo.ui.*;

final class HelloWorldCanvas extends Canvas{
public void paint(Graphics g){
String aaa;
MediaData d=MediaManager.getData("resource:///0.txt");
try{
d.use();
}
catch (Exception e){
}
aaa=d.getData();
g.drawString(aaa,0,20);
}
}

IApplicationクラスを定義しているHelloWorld.JavaからHelloWorldCanvasを呼び出して、上のソースはHelloWorldCanvasのソースです。
これをiαppliToolでビルドすると、

C:\~\HelloWorldCanvas.java:12: シンボルを解釈処理できません。
シンボル: メソッド getData ()
位置 : com.nttdocomo.ui.MediaData の インタフェース
aaa=d.getData();

と出てきてしまいます。
Javaは本当に初めてなので慣れている方から見たら意味不明なことをしているかも知れませんが、どうかご回答お願いします。

A 回答 (1件)

こんばんは。


画像やサウンドはMeidaManagerを使用してリソースにアクセスしますが、テキストファイルの場合はストリーム(リーダ)を使用します。

また、画面のタイプには「Canvas」と「Panel」があり、テキストを表示する場合は「Panel」のほうが適しています。

↓はresフォルダ内のtest.txtにアクセスして内容をコンソールに出力します。(端末エミュレータ画面には表示しません)
==================================================
import java.io.*;
import javax.microedition.io.*;
import com.nttdocomo.io.*;
import com.nttdocomo.ui.*;

public class LoadText extends IApplication {

public void start() {

BufferedReader in = null;
try {
// リソース接続処理
InputStream instream = Connector.openInputStream("resource:///test.txt");
InputStreamReader inreader = new InputStreamReader(instream);
in = new BufferedReader(inreader);

// テキスト読込み処理
String line = null;
while((line = in.readLine()) != null) {
System.out.println(line); // 標準出力
}
}
catch(Exception e) {
e.printStackTrace();
}
finally {
try {
in.close();
}
catch(Exception e) {}
}
// ※例外処理は簡易的になっています。

this.terminate();
}

}
    • good
    • 0
この回答へのお礼

ありがとうございます。結構テキストの場合はややこしいのですね…。。
こっちでちょこっと変えてみて、画面に出力することも出来ました。分かりやすい説明ありがとうございました。

お礼日時:2006/12/10 00:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!