CLDC+MIDP+携帯電話用Javaスレッド part 3
1 名前:デフォルトの名無しさん [sage] 投稿日:04/08/06 22:21
J2ME CLDC+MIDPベースの携帯電話用Java(主にEZアプリ、Vアプリ)に関するスレッドです。
質問でも議論でも何でもこい、と。

前スレ:
CLDC+MIDP+携帯電話用Javaスレッド part 2
http://pc5.2ch.net/test/read.cgi/tech/1070858996/

過去スレ
携帯JAVAのスレッド
http://pc2.2ch.net/test/read.cgi/tech/1011977260/(DAT落ち)

--
Java一般に関しては:
【初心者】Java質問・相談スレ51【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1091770298/

NTT DoCoMoのiモード携帯電話用Java(iアプリ)については:
iモード携帯電話用Java(iアプリ) Part 6
http://pc5.2ch.net/test/read.cgi/tech/1091286071/

>>2-5あたりにリンク集

2 名前:デフォルトの名無しさん [sage] 投稿日:04/08/06 22:22
調べものはまずGoogleへ
http://www.google.co.jp/

Java 2 Platform, Micro Edition (J2ME)
http://java.sun.com/j2me/
Reference Documentation(仕様書やAPIリファレンス)
http://java.sun.com/j2me/docs/
J2ME Wireless Toolkit
http://java.sun.com/products/j2mewtoolkit/

EZアプリ技術情報
http://www.au.kddi.com/ezfactory/tec/spec/ezplus.html
Vアプリ技術情報(Vodafone Developers Support Site)
http://www.dp.j-phone.com/dp/

3 名前:デフォルトの名無しさん [sage] 投稿日:04/08/06 23:43
>>1
乙。


AUのPhase3.0対応のエミュレーターまだ〜?
まぁ、出ても激遅で使えんのでしょうが。

4 名前:デフォルトの名無しさん [sage] 投稿日:04/08/07 00:13
>3
噂によると出ていることは出ているらしい。
ただ、Phase3.0自体こけたも同然の仕様なので、一般には配布されてないそうな。
あうと契約を結んだベンダーにはこっそり配布されるらしいが、
遅い早い以前に描画がメチャクチャでどーしよーもないとか……

5 名前:デフォルトの名無しさん [sage] 投稿日:04/08/07 01:32
へぇ。あうJAVAは破綻ぎみか・・

6 名前:デフォルトの名無しさん [sage] 投稿日:04/08/07 01:57
>>2
http://www.dp.j-phone.com/dp/

http://developers.vodafone.jp/dp/

Jぽんが残るのはUAくらいか。


7 名前:デフォルトの名無しさん [sage] 投稿日:04/08/07 03:50
Ezアプリについてなんですが
public SpriteImage(byte[] data)
で指定するdataってどんなフォーマットなんでしょうか?

ezアプリプログラミングガイドみても
http://www.mascotcapsule.com/toolkit/kddi/
2Dスプライとについてはここみろって書いてあるのに
リンク先には3Dの情報しか見つからない

8 名前:デフォルトの名無しさん [sage] 投稿日:04/08/07 04:03
>>1にリンクされたJava総合スレッドは、重複スレッドのようなので、
こちらのほうをつかってください。

【初心者】Java質問・相談スレ51【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1091666193/l50

Javaスレッドについては、案内用のwikiもあるので
次スレッドをたてるときのリンク先としては、こちらのほうがいいかもしれません。
http://www.wikiroom.com/java/

また、よろしかったら携帯用Java関連スレッドのテンプレなどにも、
どうぞ、このwikiをご利用ください。


9 名前:デフォルトの名無しさん [sage] 投稿日:04/08/07 06:30
>>7
そのサイトの「MascotCapsuleツールの配布」→「Micro3D Tools (Win専用)フリー」→
「マニュアル」欄の「2Dスプライト プログラミングガイド」をダウンロードすれば多分解決。

10 名前:デフォルトの名無しさん [sage] 投稿日:04/08/07 12:42
>>6
そろそろUAからも消えるらしい・・・

11 名前:デフォルトの名無しさん [sage] 投稿日:04/08/07 21:43
>>9
ありがとうございます
Windows BMP なんですね

12 名前:6 [sage] 投稿日:04/08/08 02:28
>>10
そうなのか。
なら、JSCLもVSCLになったり・・・・ヽ(`Д´)ノ ウワァン

13 名前:デフォルトの名無しさん [] 投稿日:04/08/08 06:32
Vで質問です。
StorageConnectionを使って作ったInputStreamでInputStreamReaderを作るとなんか変です。
ちゃんと文字が読めません。(System.out.printlnすると□ばかりに化ける)
開きたいファイルをそのままjarに入れておいて、getResourceAsStreamから作ったInputStreamだとちゃんと読めます。
原因何かないでしょうか。JSCL1.2対応のエミュで実行しています。


StorageConnection conn = (StorageConnection)Connector.open( "file://"+textfile);
InputStream in = conn.openInputStream();
//in=getClass().getResourceAsStream(filename)だと読める
InputStreamReader reader = new InputStreamReader( in, "SJIS");
char[] buf = new char[8192];
reader.read(buf);
System.out.println( new String(buf));


14 名前:デフォルトの名無しさん [sage] 投稿日:04/08/08 09:00
textfileがパスを含んでないとして
"file:///ms/"+textfile
とやるんじゃない?

15 名前:13 [sage] 投稿日:04/08/08 16:17
>>14
いや、パスが違うとかそういうレベルじゃないです・・・
InputStreamReader使わずにInputStreamから直接byteで読み込んでStringに変換するとうまくいってるわけです。
素直に、InputStreamReaderを回避するしかないんだろうか。。

16 名前:14 [sage] 投稿日:04/08/08 16:53
>いや、パスが違うとかそういうレベルじゃないです・・・
だってtextfileやfilenameの文字列が具体的に書いてないから分からないじゃない。

17 名前:デフォルトの名無しさん [sage] 投稿日:04/08/08 22:35
>>13
文字エンコーディングがおかしくなってそうだけど。
なんでだろ。

忘れてなけりゃ、あした調べとく。

18 名前:13 [sage] 投稿日:04/08/08 23:32
>>17
元のテキストはShift_JISです。
getResourceAsStreamから読む場合やInputStreamからbyte読んでnew String(byte[],String)する場合は
SJISコンバータで読めてます。

new InputStreamReader(InputStream)の方のコンストラクタ使ったりUTF-8コンバータにしたりもしてみたんですが
やっぱダメでした。デフォルトのエンコーディング指定だとSJIS指定時と同じ感じに、UTF-8の場合は完全に化け化けな文字になりました。

InputStreamからbyteで読み込んで変換する方法でうまくいってるんで、とりあえずこっちで対処することにします。


19 名前:デフォルトの名無しさん [sage] 投稿日:04/08/09 23:40
ダライアス難しいよなぁ。
easyでもきつい。
故意に死んで球かせぐ必要あり?

20 名前:デフォルトの名無しさん [sage] 投稿日:04/08/10 00:00
ごめん、誤爆です誤爆w;Vodafoneのダライアスの話

21 名前:デフォルトの名無しさん [] 投稿日:04/08/10 15:33
アプリゲットに開発者として登録しようと思うんですけど、
HelloWorldプログラムみたいな、明らかにふざけてるだろ、っていうプログラムは審査に引っかかりますか?
あ、公開ではなくテスト領域の方へのうpです。

22 名前:デフォルトの名無しさん [sage] 投稿日:04/08/10 15:55
テストには審査無いはずです。

23 名前:デフォルトの名無しさん [sage] 投稿日:04/08/10 16:51
審査っつぅか
JADとJAR(MANIFEST)がマッチしてかつ必要な情報書き込まれてるか
機械的にチェックするだけなんで
エローワールドでもハローC#でも通りまする。

24 名前:デフォルトの名無しさん [sage] 投稿日:04/08/10 18:05
>>21
FTPで必要なファイルをアップロード
→機械的なチェックのみ。
→作者宛にダウンロードのためのURLがメールで送られてくる。

これにかかる時間はだいたい30秒。

25 名前:17 [sage] 投稿日:04/08/11 02:56
>>18=13
おそくなってごめん。
StorageConnectionから生成したInputStreamで、InputStreamReaderを
生成すると、やはり文字エンコーディングがおかしくなってるね。

解決策は、InputStreamReaderを使わない。ってことになる。


26 名前:デフォルトの名無しさん [] 投稿日:04/08/11 03:03
>>22-24
おお、サンキュです!
機械チェックだけだったんですね。早速登録してみます。

27 名前:13 [sage] 投稿日:04/08/11 03:11
>>25
どうもありがとうございます。
やはり再現しましたか・・・ここはInputStreamからbyte読み込んで処理することにします。
余裕があれば実機でも試してみることにします。


28 名前:17 [sage] 投稿日:04/08/11 03:37
>>27
試すまでもなく、実機も同じ動作になるよ。
だって、.....。

#守秘義務のため、これ以上は言えない。


29 名前:デフォルトの名無しさん [] 投稿日:04/08/11 20:37
携帯アプリの開発でソースレベルデバッグは出来ないんですかね?

30 名前:デフォルトの名無しさん [sage] 投稿日:04/08/11 21:51
ふつうにできる

31 名前:デフォルトの名無しさん [] 投稿日:04/08/12 04:28
Vアプリのスプライト処理で質問です。
以前、C4でACanvasを使ってゲームを作っていたのですが、
同様の手順でP5対応のアプリを作成したら、ものすごく遅くなりました。
P用にSpriteCanvasを使用するよう変更しても、遅いままです。

Sprite機能を使わず、drawImageで過去座標キャラを背景で消し、
書き直すという処理にしたら速度が出るようになりました。

一般にP5でのSprite処理は重い物なのでしょうか?
それとも効果的な使い方があるのでしょうか?

32 名前:デフォルトの名無しさん [] 投稿日:04/08/12 09:51
>>30
どうやってやるんですか?
探してもそれらしいものが見当たらないのですが。

33 名前:デフォルトの名無しさん [sage] 投稿日:04/08/12 18:53
Vアプリの2Dスプライトって、任意の角度での回転や
拡大縮小はできるんでしょうか。
資料読んだところ、90度単位でしか回転できなさそうですが……。

ひょっとしてMicro3Dで板ポリ作って表示しなきゃいけないのでしょうか?



34 名前:デフォルトの名無しさん [sage] 投稿日:04/08/12 21:56
>>33
90度単位の回転と左右反転のみだね。
拡大縮小もなさそう。
というか、8*8固定だし。

35 名前:33 [sage] 投稿日:04/08/13 01:31
>34さん
そのようですね。

ezplusのPhase3.0でならSplite2Dでできるようなんですけどねぇ。

ありがとうございます。







36 名前:デフォルトの名無しさん [] 投稿日:04/08/13 18:18
KJX作成ツールでKDDIのサンプルソースそのままコンパイルすると

CreateProcess:
c:\jdk1.3.1\bin\javac -encoding SJIS -g:none -d
C:\ezplusTools\Tools\CmdTool\project\HelloWorld\tmpclasses -bootclasspath
c:\J2MEWTK\lib\midpapi.zip;c:\ezplusTools\Tools\KDDI-P\kddip.jar -classpath
C:\ezplusTools\Tools\CmdTool\project\HelloWorld\tmpclasses
C:\ezplusTools\Tools\CmdTool\project\HelloWorld\src\HelloWorld.java error=3

とか出てきてKJXが出来ないんですけれども理由がわかんないです。。。

37 名前:デフォルトの名無しさん [sage] 投稿日:04/08/13 18:22
HelloWorld.javaのソース貼ってちょ。

38 名前:デフォルトの名無しさん [sage] 投稿日:04/08/13 18:26
ああ、ごめん貼らなくていいや。そのままなのね。


39 名前:デフォルトの名無しさん [sage] 投稿日:04/08/13 18:46
と思ったけどやっぱり貼ってちょ。

40 名前:デフォルトの名無しさん [] 投稿日:04/08/13 18:47
一応はりますね
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloWorld extends MIDlet implements CommandListener{
Command exitCommand;
Display display;

public HelloWorld(){
display = Display.getDisplay(this);
exitCommand = new Command("Exit",Command.SCREEN,2);
}
public void startApp(){
TextBox textbox = new TextBox("HelloWorld","Hello World!",256,0);
textbox.addCommand(exitCommand);
textbox.setCommandListener(this);
display.setCurrent(textbox);
}

public void pauseApp(){}
public void destroyApp(boolean unconditional){}
public void commandAction(Command command,Displayable screen){
if(command==exitCommand){
destroyApp(false);
notifyDestroyed();
}
}
}



41 名前:デフォルトの名無しさん [] 投稿日:04/08/13 18:49
それとエラーの全文です

compile start...
c:\jdk1.3.1\bin\javac -encoding SJIS -g:none
-d C:\ezplusTools\Tools\CmdTool\project\HelloWorld\tmpclasses
-bootclasspath c:\J2MEWTK\lib\midpapi.zip;c:\ezplusTools\Tools\KDDI-P\kddip.jar
-classpath C:\ezplusTools\Tools\CmdTool\project\HelloWorld\tmpclasses
C:\ezplusTools\Tools\CmdTool\project\HelloWorld\src\HelloWorld.java
build failed. exception:java.io.IOException: CreateProcess:
c:\jdk1.3.1\bin\javac -encoding SJIS -g:none -d
C:\ezplusTools\Tools\CmdTool\project\HelloWorld\tmpclasses -bootclasspath
c:\J2MEWTK\lib\midpapi.zip;c:\ezplusTools\Tools\KDDI-P\kddip.jar -classpath
C:\ezplusTools\Tools\CmdTool\project\HelloWorld\tmpclasses
C:\ezplusTools\Tools\CmdTool\project\HelloWorld\src\HelloWorld.java error=3


42 名前:デフォルトの名無しさん [sage] 投稿日:04/08/13 18:57
MIDPかなんかのパスがまちがっとる。
c:\J2MEWTK\lib\midpapi.zip
ほんとにこんなもんあるけ?

43 名前:デフォルトの名無しさん [] 投稿日:04/08/13 19:03
>>42
あります・・・
それを解凍して中身をみたら

com
java
javax

ってフォルダが入っていてその下にいろいろ入ってました。

44 名前:デフォルトの名無しさん [sage] 投稿日:04/08/13 19:15
ほんとにjavaのバージョンは1.3.1だか?

45 名前:デフォルトの名無しさん [] 投稿日:04/08/13 19:22
javaのバージョンが間違っていたので全部直しました。
全てのフォルダを確認しながら設定しました。

それでも動きません。。

javac path c:\j2sdk1.4.2_04\bin\javac
jar path c:\j2sdk1.4.2_04\bin\jar
preverifypath c:\WTK104\bin\preverify
other after process path java -jar c:\ezplusTools\Tools\CmdTool\KJXArchiver.jar -c
                 %PROJDIR%\bin\%PROJ%.jad %PROJDIR%\bin\%PROJ%.jar %PROJDIR%\bin\%PROJ%.kjx
class path C:\WTK104\lib\midpapi.zip;c:\ezplusTools\Tools\KDDI-P\kddip.jar

46 名前:デフォルトの名無しさん [sage] 投稿日:04/08/13 19:26
今のエラーメッセージだしてみるとよか。
パス貼られても確かめようないぞなw

47 名前:デフォルトの名無しさん [sage] 投稿日:04/08/13 19:28
あと、設定なおしたらKJXは再起動。反映しなかったりしる。

48 名前:デフォルトの名無しさん [sage] 投稿日:04/08/13 19:31
なんていうのは嘘で。。。
プロジェクトの設定も直さないとダメぽ。


49 名前:デフォルトの名無しさん [sage] 投稿日:04/08/13 19:41
あう開発のちうい点

@パスは間違えるな!
Aプロジェクト名はエントリのクラス名にしとけ!
B環境を直すときはデフォルトの環境だけでなくプロジェクトの環境も直せ!
Cパスは間違えるなってば!

できたべ?>>45

50 名前:デフォルトの名無しさん [] 投稿日:04/08/13 19:41
現在のエラーです
プロジェクトは最初から作り直しました・・・・


compile start...
c:\jdk1.3.1\bin\javac -encoding SJIS -g:none
-d C:\ezplusTools\Tools\CmdTool\project\HelloWorld\tmpclasses
-bootclasspath c:\J2MEWTK\lib\midpapi.zip;c:\ezplusTools\Tools\KDDI-P\kddip.jar
-classpath C:\ezplusTools\Tools\CmdTool\project\HelloWorld\tmpclasses
C:\ezplusTools\Tools\CmdTool\project\HelloWorld\src\HelloWorld.java
build failed. exception:java.io.IOException: CreateProcess: c:\jdk1.3.1\bin\javac
-encoding SJIS -g:none -d C:\ezplusTools\Tools\CmdTool\project\HelloWorld\tmpclasses
-bootclasspath c:\J2MEWTK\lib\midpapi.zip;c:\ezplusTools\Tools\KDDI-P\kddip.jar -classpath
C:\ezplusTools\Tools\CmdTool\project\HelloWorld\tmpclasses
C:\ezplusTools\Tools\CmdTool\project\HelloWorld\src\HelloWorld.java error=3

51 名前:デフォルトの名無しさん [sage] 投稿日:04/08/13 19:42
エラー時に1.3.1のディレクトリが表示されるちうことは
デフォルトの環境は直したけどこのプロジェクトの環境は元のまま
ちうことだべ。

52 名前:デフォルトの名無しさん [sage] 投稿日:04/08/13 19:43
ほらな〜。

53 名前:デフォルトの名無しさん [] 投稿日:04/08/13 19:47
プロジェクトの設定直しました・・・
すいません。でも動きません(ノД`)ノ

KJXのコンソールに出力されたメッセージです。。。

C:\ezplusTools\Tools\CmdTool>c:\j2sdk1.4.2_04\bin\java -jar CmdTool.jar
java.io.IOException: CreateProcess: c:\jdk1.3.1\bin\javac -encoding SJIS -g:none
-d C:\ezplusTools\Tools\CmdTool\project\HelloWorld\tmpclasses -bootclasspath c:
\J2MEWTK\lib\midpapi.zip;c:\ezplusTools\Tools\KDDI-P\kddip.jar -classpath C:\ezp
lusTools\Tools\CmdTool\project\HelloWorld\tmpclasses C:\ezplusTools\Tools\CmdToo
l\project\HelloWorld\src\HelloWorld.java error=3
at java.lang.Win32Process.create(Native Method)
at java.lang.Win32Process.<init>(Win32Process.java:66)
at java.lang.Runtime.execInternal(Native Method)
at java.lang.Runtime.exec(Runtime.java:566)
at java.lang.Runtime.exec(Runtime.java:428)
at java.lang.Runtime.exec(Runtime.java:364)
at java.lang.Runtime.exec(Runtime.java:326)
at jp.co.aplix.micro.toolbar.model.Project.exec(../src/model/Project.jav
a:322)
at jp.co.aplix.micro.toolbar.model.Project.access$100(../src/model/Proje
ct.java:13)
at jp.co.aplix.micro.toolbar.model.Project$Builder.run(../src/model/Proj
ect.java:373)

54 名前:デフォルトの名無しさん [sage] 投稿日:04/08/13 19:47
めにうの
<tool>のdefault env...が全体の環境、
<Project>のedit envがこのプロジェクトの環境だべさ。

もうちっとだ。ガンガレ


55 名前:デフォルトの名無しさん [sage] 投稿日:04/08/13 19:48
('A`)えー・・


56 名前:デフォルトの名無しさん [sage] 投稿日:04/08/13 19:50
javacんとこ1.3.1て書いてあるジャン

57 名前:デフォルトの名無しさん [] 投稿日:04/08/13 19:51
プロジェクト一回全部消して作り直したら動きました
大変ありがとうございました、助かりました!


58 名前:デフォルトの名無しさん [sage] 投稿日:04/08/13 19:53
よかたね(○´ー`○)なっちもよろこんでるべさ

59 名前:デフォルトの名無しさん [sage] 投稿日:04/08/13 22:49
>>3,4
 Phase3エミュは一般にも一瞬だけ公開されましたよ。一般でも一部の人は持ってます。
 確か携帯アプリ板でちょっとだけアップしてくれた人もいました。
エミュの速度はVodaのP5エミュと大差ありません。安定性はVodaのほうが上な気がします。
でも、KJX作成ツールからダブルクリックでエミュに行けるのが便利です。
遅いPCでやると画面の更新が変になって崩れます。

60 名前:デフォルトの名無しさん [sage] 投稿日:04/08/15 06:41
Phase3の開発キットならここにあるぞ。
ttp://eseuta.mine.nu/

61 名前:デフォルトの名無しさん [sage] 投稿日:04/08/15 13:35
おお、ほんとだ。何故こんな所に・・。

62 名前:名無しさん@Vim%Chalice [sage] 投稿日:04/08/15 21:39
大きな画像を読み込むとき読み込み完了前に
データにアクセスしてNullPointerExceptionとなります。

読み込み完了まで待機したいのですがどうすればいいのでしょうか?

au Phase2.5です。

63 名前:デフォルトの名無しさん [sage] 投稿日:04/08/15 21:50
img1=null;
img1に画像読み込み;
while(img1==null){ }//空ならずっと何もしないで繰り返す
どっかでこういうの見かけて、ずっと真似してるんだけど、これで効果あるのかな?


64 名前:デフォルトの名無しさん [sage] 投稿日:04/08/15 22:16
>62
より堅い手を使うとすれば適当なオブジェクトでsynchronize掛けるとか。
まぁ、Phase2.5機なら、「読み込み中」「描画中」のフラグで管理しても
問題ないと思うが。

65 名前:デフォルトの名無しさん [sage] 投稿日:04/08/15 22:52
createImageってブロックされるんとちゃう?
それとも違う話かえ?
>>62の画像は
ほったらかしてからアクセスすると見れる画像なわけかい?
読み込み自体失敗してないかい?

66 名前:デフォルトの名無しさん [] 投稿日:04/08/16 16:25
mainclass.java、 subclass_1.java、 subclass_2.java
と言うファイルがあってmainclass.javaでは

public class mainclass extends MIDlet {
 public void startApp(){
  subclass_1 s1 = new subclass_1(this);
  Display.getDisplay(this).setCurrent(s1);
 }
 public void pauseApp(){}
 public void destroyApp(boolean b){}
}
とやってsubclass_1を動かしています
そしてsubclass_1からsubclass_2へ画面の制御を完全に移したくて
subclass_1のコマンドアクションでCurrentに表示されるクラスを変えたいのですが

public void commandAction(Command c,Displayable s){
if(c==next){
  subclass_2 s2 = new subclass_2(this);
  Display.getDisplay(this).setCurrent(s2);
 }
}

とすると
シンボルを解決できません。
シンボル: コンストラクタ MainMenu (Intro)
場所 : MainMenu の クラス
MainMenu m = new MainMenu(this);
javax.microedition.lcdui.Display の getDisplay(javax.microedition.midlet.MIDlet) は (subclass_1) に適用できません。
Display.getDisplay(this).setCurrent(s2);
となってしまいs2のクラスを表示できません、どうすればいいんでしょうか・・・

67 名前:デフォルトの名無しさん [sage] 投稿日:04/08/16 17:37
getDisplay(this)に何が入っているでしょうか、てことです。
mainclassで呼んだgetDisplay(this)のthisはmainclass、
subclass_1のコマンドアクションで呼ばれたgetDisplay(this)のthisは
subclass_1が入っておる、と。
そりゃーJavacも悲鳴あげます。
mainclassを入れてあげて。

68 名前:デフォルトの名無しさん [sage] 投稿日:04/08/16 17:42
というか、Javacの報告を無視してはイクナイです。

69 名前:デフォルトの名無しさん [sage] 投稿日:04/08/16 17:49
ありがとうございます!
えっとMIDPのインスタンスのappをthisに入れたら動きました


subclass_2 s2 = new subclass_2(app);
Display.getDisplay(app).setCurrent(s2);

ちゃんとコンソールにでるjavacのメッセージを確認します。。。。

ありがとうございます!


70 名前:デフォルトの名無しさん [sage] 投稿日:04/08/16 18:06
よかたね。なっち(○´ー`○)もよろこんでるべさ。

71 名前:デフォルトの名無しさん [sage] 投稿日:04/08/16 19:09
新しくPC買いたいんだが、オススメある?
TVチューナー+アプリ作成しやすい奴。

72 名前:デフォルトの名無しさん [sage] 投稿日:04/08/17 05:32
>>71
広いディスプレイと打ちやすいキーボードがあれば、
あとはソフトウェア次第なんでどうでもいい。
あ、メモリは1GBね。

73 名前:デフォルトの名無しさん [] 投稿日:04/08/18 16:47
HttpConnection でネットに繋ごうとすると
IOException例外が発生して
詳細メッセージはout of service とだけ出ます。
これって何がいけないんでしょうか?
サンプルのソースでやってみてもどれも同じエラーが出てしまいます。
どなかた分かる方ご教授下さい。


74 名前:デフォルトの名無しさん [sage] 投稿日:04/08/18 18:21
環境かいてちょ

75 名前:デフォルトの名無しさん [] 投稿日:04/08/18 19:55
Win2K, LAN接続
J2SE 1.4.2_04
JSCL 1.07.00
WTK 1.04 preverifyのみ利用
.jad ファイルのMIDlet-Network は Y になってます。


76 名前:デフォルトの名無しさん [sage] 投稿日:04/08/18 21:34
うーん・・・
何のサンプル?
公式と手持ちの本のconnectionまわりのサンプルを
いくつかP5とc4のエミュで
試したけど失敗した例ないわ〜

公式マニュアル概要編によればout of serviceは
ネットワークサービスに問題がある場合とあるから
LAN環境とか串がどうとか、接続先とかそのあたりのことが問題なのでは
と妄想したけど。

ちなみにJSCL 1.07.00って何型の端末用?

77 名前:デフォルトの名無しさん [sage] 投稿日:04/08/19 00:54
>>76
知り合いから貰ったもので元々なんのサンプルかは分からないのですが
極めてシンプルなサンプルでただテキストフィールドに
入力されたURL(JPEG,PNGのファイルを指してる)に繋いで
その画像ファイルを表示するだけのものです。
URLはhttp://localhost/1.pngとなってます。
なのでhttpサーバー起動してます。
試しにブラウザからこのURLにアクセスするときちんと表示されます。

LAN環境はWWWへはNATで繋いでいて
ファイアーウォールは使わず串も通してないです。

>ちなみにJSCL 1.07.00って何型の端末用?
P4型です、JavaDoc開いた時のブラウザのタイトルバー見たら
1.07.00 とあったので、あ、これかと思って書きました。


78 名前:デフォルトの名無しさん [sage] 投稿日:04/08/19 01:15
>>77
HTMLタグを表示するだけのよくあるやつだけど、
Apach入れてテストしてみたが問題なく動く。
ほんとに動いた実績のあるサンプルなんかね〜?
抵抗なければサンプルまとめてアップしてほすぃ。

このへんとかに。
ttp://namihei.zone.ne.jp/cgi-bin/up/upload.cgi


79 名前:デフォルトの名無しさん [sage] 投稿日:04/08/19 09:11
>>78
すいません、質問しておいてなんなのですが
ちょっと諸事情あってアップは出来ないんです。
本当に特別な処理はなく
HttpConnection hcon = null;
hcon = ( HttpConnection )Connector.open( "http://localhost/1.png", Connector.READ );
と普通にオープンしてByteArrayOutputStreamでバッファに書き込み
Image.createImageでイメージを作成、表示してるだけなんです。

ただApachと聞いてちょっと思い当たる節があるのですが
マニュアルのどこかにApach以外のサーバーとの接続保証はしない、
とあったような・・・
ちょっとApach試してみます、どうもです。

80 名前:デフォルトの名無しさん [sage] 投稿日:04/08/19 10:13
>>73
エミュレータはプロキシを使用しない場合は通信したいサーバのIPとポートを
JTProp.datのProxyとProxyPortに設定しておかないと通信できなかったような
気がしたけど、試してみましたか?


81 名前:デフォルトの名無しさん [sage] 投稿日:04/08/19 15:04
ttp://namihei.zone.ne.jp/upup/up/18508.zip
まぁこれあげといたから
これが動くかまず試してみるべし。
動くなら環境には問題ない、と。


82 名前:デフォルトの名無しさん [sage] 投稿日:04/08/19 15:47
質問させてください。
tempIはInteger型。
byte[] b = (tempI.toString).getBytes;
というコードで、

シンボルを解釈処理できません。
シンボル: 変数 toString
位置 : java.lang.Integer の クラス
byte[] b = (tempI.toString).getBytes;
^
compile failed
エラー 1 個

と、エラーが出てしまいます。
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
import java.lang.*;
import java.util.*;
を読み込んでいるのですが、なにか足りないものでもあるのでしょうか?
コンパイルはezアプリ用のcmdToolを使ってます。

83 名前:デフォルトの名無しさん [sage] 投稿日:04/08/19 15:52
>>82
プロパティじゃなくてメソッドだから
byte[] b = (tempI.toString()).getBytes();
じゃなくて?


84 名前:82 [sage] 投稿日:04/08/19 16:00
>>83
ありがとうございます。お陰様でできました。
多言語からJava乗り移ってきたけどつらいorz

85 名前:デフォルトの名無しさん [] 投稿日:04/08/20 10:01
携帯画像ファイルを取得して上にお絵かきして表示するアプリを作成しています。
vodafoneのC4、P4型(JSCL 1.0)でResourceOperatorで取得した画像データを
Imageクラスに読み込む方法を知りませんか?
MediaPlayerでは表示した上に描画できないようなので何か別の方法を知りませんか?


86 名前:デフォルトの名無しさん [sage] 投稿日:04/08/21 04:38
>>85
ちょっと前にオレがjavadocを熟読した感じでは、たぶん無理。
StorageConnection使え。。

ん〜、でも今読んでみた限りは、
データフォルダ上のJPEGをImageに変換できないような気がする。。PNGならできると思う。
つーことで、JPEGデコーダ頼んだ。

Image->JPEG(data[])はImageEncoderで
データフォルダ->JPEG/PNG(data[])はStorageConnectionで
PNG(data[])->ImageはImage#createImageで

↑素人のオレがJavadoc眺めて想像しているだけで、ホントにできるかどうかは知らん。

87 名前:85 [sage] 投稿日:04/08/21 09:43
>>86
StorageConnectionはJSCL1.2からなのでC4、P4型では使えないです。
データフォルダからデータを取得するのはResourceOperatorしか無さそうで、
ResourceOperatorのデータはMediaPlayerでしか扱え無さそう。
何か方法は無いでしょうか?

ちなみにJSCL1.2でStorageConnectionを使えばデータフォルダのJPG、PNG
のどちらでもImageに読み込めます。


88 名前:デフォルトの名無しさん [sage] 投稿日:04/08/21 11:26
g.drawString("ぬるぽ",0,20,g.LEFT|g.BOTTOM);

89 名前:デフォルトの名無しさん [sage] 投稿日:04/08/21 11:37
>>87
方法は無い。
JSCL 1.0 の時代には、そのようなことは想定されていなかった。

90 名前:デフォルトの名無しさん [sage] 投稿日:04/08/21 11:38
ちなみに、方法がないのは著作権保護の理由があって、
保護されているファイルを読み取って送信するとか、そういう用途に使えないようにするため。

91 名前:デフォルトの名無しさん [sage] 投稿日:04/08/21 13:29
>>88
g.drawString("ガッ",0,40,g.LEFT|g.BOTTOM);

>>89
画像データの上に描画して表示したいだけだったら、MediaPlayerのpaintをオーバーライド
すれば実現できないのかな?


92 名前:デフォルトの名無しさん [sage] 投稿日:04/08/21 16:00
俺もちょびっと調べてみたけど
どうもC4・P4ではできそうにない。
それに近いことをしてるアプリって存在するのだろうか。

93 名前:デフォルトの名無しさん [sage] 投稿日:04/08/21 16:18
>>91
javadoc見たけどC4型のMediaPlayerはCanvasからの派生ではないので無理。
P4型はできるかもしれない…

94 名前:デフォルトの名無しさん [sage] 投稿日:04/08/21 16:32
以下のようなコードは
ネットワーク上のファイルに書き込みだよね?
うまく書き込めないんんだけど
なぜかわかる人いる?

環境は
MIDP1.x系全般のエミュ、
ローカルサーバで実行して
レスポンスコードは200

hc = (HttpConnection)Connector.open("http://localhost/test.log");
os = c.openOutputStream();
os.write(data);
os.close();
res = hc.getResponseCode();
hc.close();

95 名前:デフォルトの名無しさん [sage] 投稿日:04/08/21 17:28
そんなんでネットワーク上のファイルに書きこめたら
((((;゚Д゚))))ガクガクブルブル

96 名前:デフォルトの名無しさん [sage] 投稿日:04/08/21 17:36
え、違うのか!?www

ごめんよかったら教えてちょ

97 名前:デフォルトの名無しさん [sage] 投稿日:04/08/21 17:49
>>96
サーバーにHTTPリクエストを送ってるんでしょ?
「ネットワーク上のファイルに書き込み」は
サーバー側の仕事。

98 名前:デフォルトの名無しさん [sage] 投稿日:04/08/21 17:58
あああ、なんとなく納得。

99 名前:86 [sage] 投稿日:04/08/22 06:14
WebDAVなら直接書いたりできるんだろうか。。
まぁオレには関係ないか・・


>>87
ちょいと裏技になるんだが、
ACanvas(SpriteCanvas)でのフレームバッファの転送は、
ACnavas(SpriteCanvas)が画面として設定されていないときにもできる。

つまり、com.j_phone.media.MediaPlayerを画面に設定しつつ、
裏でflush(drawFrameBuffer)とかすれば重ねて表示できる。

まぁ表示したところで、表示後ごにょごびょしたものをImageなりbyteなりで取得できないんで、
>85 の目的のお絵かき用には使えないと思う。

100 名前:デフォルトの名無しさん [sage] 投稿日:04/08/23 01:42
SH53で
20x20のチップ敷き詰めてループまわすと
FPS10で限界チック。
早くするために君ならどうする?

101 名前:デフォルトの名無しさん [sage] 投稿日:04/08/23 03:21
処理速度の速い端末が出るのを待つ

102 名前:デフォルトの名無しさん [sage] 投稿日:04/08/23 03:59
SpriteCanvas使ったらはやくなるもんかい?

103 名前:デフォルトの名無しさん [sage] 投稿日:04/08/23 12:43
>>100
チップをでかくする。

104 名前:デフォルトの名無しさん [sage] 投稿日:04/08/23 19:32
/***001.java
public class 001 extends MIDlet {
static MIDlet current;

/** コンストラクタ */
public 001() {
current=this;
main canvas=new main();
Form form=new TextFieldForm();
Display.getDisplay(this).setCurrent(canvas);
Thread thread=new Thread(canvas);
thread.start();
}
/***main.java
class main extends Canvas implements CommandListener, Runnable {
public void commandAction(Command c,Displayable s) {
if (c==soft2) {
Display.getDisplay(this).setCurrent( from );
repaint();
}
}
}

105 名前:デフォルトの名無しさん [sage] 投稿日:04/08/23 19:33
/***TextFieldForm.java
/** テキストフィールド(フォーム) */
class TextFieldForm extends Form implements CommandListener {
public void commandAction(Command c,Displayable s) {
if (c==soft2) {
Display.getDisplay(this).setCurrent(canvas);
repaint();
}
}
}

でmainからTextFieldFormへの切り替えはできたのだがその逆ができない・・
教えてエロイ人!

106 名前:デフォルトの名無しさん [sage] 投稿日:04/08/23 20:46
>>105
TextFieldFormクラスの
Display.getDisplay(this).setCurrent(canvas);
のcanvasってどっから来るのさ。

107 名前:デフォルトの名無しさん [sage] 投稿日:04/08/23 23:16
>>106
書き換え忘れです・・・。
そこの部分をなんと書けばいいのだろうか・・・


108 名前:デフォルトの名無しさん [sage] 投稿日:04/08/24 00:36
何か所か出てくるDisplay.getDisplay(this).setCurrent(…);
のthisがそれぞれ何を指しているか考えれば誤りに気付くと思う。

109 名前:デフォルトの名無しさん [sage] 投稿日:04/08/24 01:40
>>108
Display.getDisplay(001.current).setCurrent(form);
Display.getDisplay(001.current).setCurrent(canvas);
にしたところ、thisのところのエラーは無くなったけど
setCurrentのところが分からない・・・

110 名前:デフォルトの名無しさん [sage] 投稿日:04/08/24 02:09
オブジェクト指向が理解できていない様子。
formとcanvasのインスタンスはどのクラスが保持しているのか考えてみて。

111 名前:デフォルトの名無しさん [sage] 投稿日:04/08/24 02:39
>>109
基本的なJavaの決まりごとをおさらいするのも必要だと思うよ。
よくわからないまま動いても応用きかないから
つまづいてばかりでかえって遠回りかも。
あわてずにガンガッテ。

となっち(○´ー`○)さんがおっしゃっています。。。

112 名前:デフォルトの名無しさん [] 投稿日:04/08/24 10:42
vodafoneのVSCL2.0ではStorageConnectionは無いのでしょうか?
せっかくJSCL1.2で携帯内部データが使えるようになったのに
VSCL2.0からは使えなくなってしまうのでしょうか?


113 名前:デフォルトの名無しさん [] 投稿日:04/08/24 18:58
MIDPのhttp接続について質問させてください。最初にソースです。finallの処理は省略してますy
public String setHTTPConnection( String service, String dat, int len )
{
 String url = "http://localhost/test/test.php&dat=";
 HttpConnection con = null;
 InputStream in = null;
 try{
  con = (HttpConnection)Connector.open(url,Connector.READ,true);
  con.setRequestMethod(HttpConnection.GET);
  in = con.openInputStream();
  int length = (int)con.getLength();
  if(length<0) {
   ByteArrayOutputStream _o = new ByteArrayOutputStream();
   byte[] buf = new byte[len];
   int t = 0;
   while((t=in.read(buf))!=-1){
    _o.write(buf,0,t);
   }
   _o.close();
   str = new String(_o.toByteArray());
  }else{
   byte[] buf = new byte[length];
   in.read(buf);
   str = new String(buf);
  }
 } catch(Exception e){}
 return str;
}


114 名前:デフォルトの名無しさん [] 投稿日:04/08/24 19:02
>>113の関数にURLを渡して
サーバーのphpで処理をして返り値を取る関数を作りたいのですが
httpに接続が全く出来ません。。。

ADFのOtherKeyWordには

MIDlet-X-AllowURL-1: http://localhost/test/

と設定してあります。

どなたか有効な対処法ご存知でしたらお願いします。

115 名前:デフォルトの名無しさん [] 投稿日:04/08/24 20:04
DB系のプログラムって具体的にどういったものでしょうか。


116 名前:113 [] 投稿日:04/08/24 20:06
調べてみたところ

con = (HttpConnection)Connector.open(url, Connector.READ, true);

の時点で

java.lang.NullPointerException

が帰ってきてしまいます。

サンプルどおりに作ったんですけども・・・

117 名前:デフォルトの名無しさん [sage] 投稿日:04/08/24 22:17
>115
まずその「DB」が何の略語かはっきりさせれ。
脊髄反射で「データベース」の略語と思いそうだが
いくらなんでもJDBCドライバ同梱してDBとやりとりするようなアプリを
携帯向けに作るとは思えんし。つーかJ2MEで使えるのかJDBC。

118 名前:デフォルトの名無しさん [sage] 投稿日:04/08/24 22:25
|つーかJ2MEで使えるのかJDBC。
CDCなら聞いたことあるが、CLDCはしらんな。

119 名前:104 [sage] 投稿日:04/08/25 00:48
Form form;
main canvas;
を追加したらコンパイル出来たのだが切り替わらない・・・。


うーむよく分からない・・・・
誰か教えてくれぇー・・・・

120 名前:デフォルトの名無しさん [sage] 投稿日:04/08/25 02:40
>>104
なっち(○´〜`○)は
あなたのためになるのか悩みながらも
>>104のソースに手をいれました。
ソースは長いので
切り替え処理と関わりのない部分をはぶき、
ラウンジに貼り付けました。
自分のソースとの違いを
他の人がしてくれたレスを見ながら
考えてみてください・・・
ソースに自分なりにコメントをつけたりすると
理解の役にたちます。

ガンガレ。超ガンガレ。
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=206

121 名前: [] 投稿日:04/08/25 15:26
public class test extends MIDlet {
public static MIDlet mid;
public test(){
Display.getDisplay(this).setCurrent(new TestCanvas("0"));
}

class TestCanvas extends Canvas implements Runnable, CommandListener{
public TestCanvas(String pt){
mt_Select = pt;
}
TestCanvas a1 = new TestCanvas("1");
Display.getDisplay(test.mid).setCurrent(a1);
}

細かい処理は削らしてもらいましたけど、
今、a1 への表示切替で困っています。
Display.getDisplay(test.mid).setCurrent(a1);
が悪いのは何となくわかってるのですが、
どのように書けば良いかわかりません。

どなたかヘルプお願いします。
同じようなネタあったけど...(汗)

エラーは...
Uncaught exception java/lang/NullPointerException
at com.jblend.display.DisplayManager.getDisplay(+13)
at javax.microedition.lcdui.Display.getDisplay(+4)
destroy Old Emulator....

By M

122 名前:デフォルトの名無しさん [sage] 投稿日:04/08/25 16:41
class TestCanvas …{


}

123 名前:デフォルトの名無しさん [sage] 投稿日:04/08/25 16:46
122は書き途中で送信しちゃったミス

>>121
class TestCanvas extends …{

TestCanvas a1 = new TestCanvas(…);
}
クラス定義の中で自分自身を生成しちゃってるのがダメ。
a1はTestCanvasクラスの定義の外でnewして引数で渡すなり何なりして。

124 名前:104 [sage] 投稿日:04/08/25 17:54
皆様のおかけで無事動くようになりました!
特になっち(○´ー`○)さんアリガト!(´▽`)

125 名前:デフォルトの名無しさん [sage] 投稿日:04/08/25 18:14
>121
test.midにtestのインスタンスをセットする文が見あたらないが
ここへカキコするときに省略しただけ?

126 名前:デフォルトの名無しさん [sage] 投稿日:04/08/25 21:55
g.drawString("ぬるぽ",0,20,g.LEFT|g.BOTTOM);
って書いてもガッされないのは仕様ですか??

127 名前:デフォルトの名無しさん [sage] 投稿日:04/08/25 21:58
>126
>88-91

128 名前:デフォルトの名無しさん [sage] 投稿日:04/08/25 23:18
(○´д`○)ウーム・・
Javaの入門書とか読まないで
MIDPはじめちゃうものなのかしら。

129 名前:M [] 投稿日:04/08/26 18:37
public class test extends MIDlet {
 public static MIDlet mid;
 public static TestCanvas sc1;

 public test(){
  SetCanvas sc1 = new SetCanvas("1");
  mid = this;
  Display.getDisplay(this).setCurrent(new TestCanvas("0"));
 }
}

class TestCanvas extends Canvas implements Runnable, CommandListener{
 public TestCanvas(String pt){
  mt_Select = pt;
 }
 Display.getDisplay(test.mid).setCurrent(test.sc1);
}

変更かけてみたんですけど、やっぱりうまくいかないようで...
ご教授をお願いします...m(._ .)m

by M

130 名前:デフォルトの名無しさん [sage] 投稿日:04/08/26 19:12
>>129
厳しいこと言うけど、現時点の知識でソースをいじくり回しても無駄でしょう。
先にJavaの基本的な文法や構文の書き方を修得してください。
変数の有効範囲とかが理解できてないようだから、仮に今の問題を解決
してもらってもこの先何度もつまずくと思う。

131 名前:デフォルトの名無しさん [sage] 投稿日:04/08/26 19:31
>>129
急がば回れ。
まずはJavaの基礎からだ!

がんばれ

132 名前:104 [sage] 投稿日:04/08/26 20:08
たびたびすみません。

/*main.java*/
static int test=0;
/*TextFieldForm.java*/
textField=new TextField("Test",main.test,150,TextField.URL);

のとき、main.testの値を変えてもテキストフィールドに反映されません。。
テキストフィールドを更新?するにはどうやったらいいのでしょぅか?

133 名前:デフォルトの名無しさん [sage] 投稿日:04/08/26 20:32
よくわからんがset〜ってメソッドがあるんじゃないの?
APIリファレンスを熟読してくれ

134 名前:デフォルトの名無しさん [sage] 投稿日:04/08/26 20:53
staticで宣言してるからじゃないの?

135 名前:デフォルトの名無しさん [sage] 投稿日:04/08/26 21:32
パッケージ java.net は存在しません。
import java.net.*;

と言われたが
携帯のjavaにはjava.net.URLEncoder
ってないのか?

無いのならURLエンコードする方法はないのか??

136 名前:デフォルトの名無しさん [sage] 投稿日:04/08/26 22:23
あうだとcom.jblendあたりにURLエンコーダがあった希ガス。
KDDIプロファイルのAPI docをご覧あれ。

137 名前:デフォルトの名無しさん [sage] 投稿日:04/08/26 22:36
Javaの基礎を飛ばしてMIDPをはじめるのは別にいい。
ただ、そこから出てくる困難を俺らに押し付けるのはハッキリ言って迷惑。
困ってる人は助けてあげたいけど、何ていうか努力の跡が見えん。
実際に、1時間ぐらい分かりやすい説明考えて教えてやっても
五分くらいで「できました!でも次は〜が・・」みたいな奴がいる。
しかもその五分を「いろいろやってみたけど」とか言いやがる。
相手の時間より自分の時間を大事にするような奴は最低だと思うが・・。

>>104
まず、TextField( String , int , int , int ) はおかしくねーか?
とりあえず textField.setString( "NEW_TEXT"); とかやってみ。

>>129
104で、ものすごい近い事やってるとか思わなかったか?

138 名前:デフォルトの名無しさん [sage] 投稿日:04/08/27 01:20
ボダホンだと
com.j_phone.io.URLEncoder
これかのぅ

139 名前:デフォルトの名無しさん [sage] 投稿日:04/08/28 00:19
VアプリがMIDP2.0準拠の1M容量になるという話。
ちょっとITmediaの妄想入ってるのかも。
http://hobby6.2ch.net/test/read.cgi/appli/1093130008/294

なっち(○´ー`○)デシタ

140 名前:デフォルトの名無しさん [sage] 投稿日:04/08/28 00:43
>>139
> JSCLはオプション扱いとなるため
>112 の話とつながったか。
つまり、JSCLはいったん全部葬り去られる可能性大か。んで、MIDP2.0へと。


141 名前:デフォルトの名無しさん [sage] 投稿日:04/08/28 01:08
ドコモもMIDP2.0にして欲しいな

142 名前:デフォルトの名無しさん [sage] 投稿日:04/08/28 03:57
最近Vアプリの開発をやり始めましたが、
Vアプリエミュレータ(P5)を直接起動する方法が
分かりづらくて結構手こずってしまった・・・。
とりあえず
「emulator.exe -classpath ○○.jar
-Xdescriptor:○○.jad」
で直接起動できる事は分かりましたが、
これで起動すると、アプリで描画する領域が
Vアプリエミュレータの携帯ディスプレイ領域
からはみ出してしまいます。(エミュレータ側の
Displayサイズ設定が変わってしまうから?)
何かいい解決策はないでしょうか?


143 名前:なっち(○´ー`○) [sage] 投稿日:04/08/28 03:59
MIDP2.0のリファレンス見てたんだけど
3D関係はないのかな?
結局は国内外の各キャリアが
それぞれ独自にAPI追加したんじゃ
国際標準の迫力にかけるねぇ


144 名前:なっち(○´ー`○) [sage] 投稿日:04/08/28 06:34
>>142
emulatorは起動されたディレクトリに
参照できるmachine.profileが存在しない場合に
デフォルトの設定で起動されるみたいなので
こんなバッチファイルで起動するのはどうでしょか・・

[run.bat]
copy C:\V-appli_SDK_121\bin\machine.profile
C:\V-appli_SDK_121\bin\emulator.exe -Xdescriptor:test.jad

正当な手段は>>146が教えてくれる見込みです。

145 名前:デフォルトの名無しさん [] 投稿日:04/08/28 11:24
>>144
情報サンクス!
少し邪道な手段ですが、machine.profileを
あらかじめemulatorを起動するディレクトリに
コピペして解決しました。


146 名前:デフォルトの名無しさん [sage] 投稿日:04/08/28 12:54
>>143
Mobile 3D Graphics API for J2ME がオプション規格としてあるそうな。
J2ME Wireless Toolkit 2.2を落としてみるといろいろデモが入っているよ。

147 名前:なっち(○´ー`○) [sage] 投稿日:04/08/28 14:36
>>146
お〜・・・・そうなのね
さっそく落として見ます


148 名前:デフォルトの名無しさん [] 投稿日:04/08/28 15:23
Vアプリのエミュレータ起動すると、
起動時のフラッシュ(っていうのかな?タイトルロゴみたいな) が「最前面」で表示されるのどうにかならないですかね。

起動が遅いんで、その間ブラウザを見ようとしても「最前面」にしつこく出てきて、
しかもキーのフォーカスも奪っていくものだから、起動完了するまで待たされる罠。

OS:Windows2000
JDK:J2SDK 1.4.2_05
エミュレータ:P5型の最新

オレだけかな、この現象?

149 名前:なっち(○´ー`○) [sage] 投稿日:04/08/28 16:06
>>148
WinXP、AthlonXP 2200+(1.80GHz)、256MB RAM環境だと
スプラッシュウィンドウの表示は1秒未満だから気にならないみたい。
>>142のまねっこするか、パソコン買い換え・・

>>146
Mobile 3D Graphicsのサンプル見てみました。
エミュで見る限りは重い感じだけど
オプションも導入すれば
大抵のことはMIDP2.0で出来ちゃうってことだね〜

150 名前:デフォルトの名無しさん [sage] 投稿日:04/08/28 17:13
>>148
スプラッシュウィンドウってそういうもの(それが当たり前)だから放っておくしかない。
起動が遅いアプリ(Vエミュに限らず一般的に)が、起動完了まで画面に何も出ないと
ユーザーは「あれ?起動してるのかな?固まってるのかな?」と不安になるので、
ただいま起動中ですよ、の印代わりに1枚絵の画面を出しておく。
そしてアプリ本体が起動すれば消える。
これがスプラッシュ(ぱしゃっと水がはねる→現れてすぐ消えるの意味)ウィンドウの役目。
アプリの作りでスプラッシュウィンドウからフォーカス外せたり最前面から後ろへ回せたり
できないようにしてあるなら、ユーザーはどうしようもない。

151 名前:デフォルトの名無しさん [sage] 投稿日:04/08/28 21:40
>>149-150
スプラッシュウインドウでしたねw

やはりどうしようも無いんですねぇ--;
我慢します。ありがとうございました。

152 名前:デフォルトの名無しさん [sage] 投稿日:04/08/29 02:39
>>139
その記事は妄想ではないですよ。

アプリは国内外問わずに流通されるようになる。のかなぁ。




153 名前:デフォルトの名無しさん [sage] 投稿日:04/08/29 16:55
>>139
ただ、ライブラリがMIDP準拠のとか、
Vオリジナルとか出来ちゃって動作検証で泣くカモ知れない。

1Mアプリやるからには定額制導入するだろうケドも、
テスト面倒と思われ。

154 名前:なっち(○´ー`○) [sage] 投稿日:04/08/29 18:00
キャリア・端末でマチマチになっちゃうと
国際標準である意味が曖昧になるよね。
完全準拠であうとがんばってくれたら
市場活性化すると思うんだけど。
あうはどうなんだっけ、Javaとは決別の方向性なのかな。

155 名前:デフォルトの名無しさん [sage] 投稿日:04/08/29 19:02
ttp://www.itmedia.co.jp/mobile/articles/0408/27/news015.html
にあるような JSRが導入されれば、互換性もある程度は保証されるかも。
でも、今年でる端末に互換性を求めるのは難しいかも...。



156 名前:デフォルトの名無しさん [sage] 投稿日:04/08/29 19:41
auはJAVA捨て。今売られてるもの以降は出ない。
アプリ目的でキャリア換えする人は少ないから、BREWがよっぽどこけない限り、
JAVAを積極的にやろうとは思わないはず。
BREWにして困るのはCPだけだし。

157 名前:なっち(○´ー`○) [sage] 投稿日:04/08/29 23:58
なるほど。ということは、
docomoはDojaで制約がないので好きにできる。
auはBREWでパフォーマンスを追及できる。
VodafoneはMIDP2.0とJSRで自らに足かせ。


・・・ん?

158 名前:155 [sage] 投稿日:04/08/30 02:01
足かせ じゃなくて、コンテンツの流通市場が広がる。
と好意的に解釈しなくちゃ。

同じアプリを世界中にバラまけるようになるはずだし...。


159 名前:デフォルトの名無しさん [] 投稿日:04/08/30 20:40
HttpConnection con = null;
con = (HttpConnection)Connector.open(url);

この時点で例外が投げられるってのはどういう場合に考えられますか。

ADFの設定の

MIDlet-Network: Y

MIDlet-X-AllowURL-1: http://localhost/

は書いてあります。

ブラウザでURLにアクセスするとちゃんと見れます

160 名前:デフォルトの名無しさん [sage] 投稿日:04/08/30 21:59
>>159
例外の内容を書かないのはなぜ?

161 名前:デフォルトの名無しさん [] 投稿日:04/08/30 22:02
すいませんでした、エラーの内容を書きます。


catch(Exception e){
System.out.println("HTTP接続に失敗しました");
System.out.println(e);


HTTP接続に失敗しました
java.lang.SecurityException: access denied

162 名前:デフォルトの名無しさん [] 投稿日:04/08/30 22:15
>>160
例外の内容を書いたのに答えが無いのはなぜ?

163 名前:デフォルトの名無しさん [] 投稿日:04/08/30 22:27
それが分からないから質問してるんですけども

164 名前:デフォルトの名無しさん [] 投稿日:04/08/30 22:33
access denied って言われたって

ブラウザから全く同じアドレスで確認できる

ADF設定は上に書いたとおりに行っている

その上でエラーになるので質問をしているんです。

165 名前:デフォルトの名無しさん [sage] 投稿日:04/08/30 22:51
MIDlet-X-AllowURL-1: http://localhost/
この意味判ってる?

MLでも聞いてるみたいだが‥

166 名前:なっち(○´ー`○) [sage] 投稿日:04/08/31 00:36
質問者本人のレスかわからないけど
例外を教えてやったんだから
答えろって態度はおかしくないかい?
実行環境すら書いてないし。

例外が
java.lang.SecurityException: access denied
とわかっていれば、
この場合はezplusエミュで
MIDlet-X-AllowURL-1属性とマッチしないホストへ
接続を試みているのではないか、
早い話、接続先のURLがおかしいのではないか、
なんて見当もつけられるけど。

167 名前:デフォルトの名無しさん [sage] 投稿日:04/08/31 00:50
質問者は端末(エミュレータ)がauなのかvなのか、それとも他のMIDP端末なのか、
auならPhaseいくつか、vならC4型かP4型かP5型かとか書かないと
回答者も困ると思うんだが。

>>159を見てもそれがわからん。
>MIDlet-Network:  …これはvでは書くがauでは書かないもの。
>MIDlet-X-AllowURL-1:  …これはauでは書くがvでは書かないもの。
と俺は認識してるんだが、回答できる人はこれを見て何の端末か分かるもんなの?

168 名前:なっち(○´ー`○) [sage] 投稿日:04/08/31 01:47
>>167

>>159だけだとエミュとしか。
定義されてない属性をつけてはいけないわけではないから
WTKすらありえるし。

>>161の情報があればこの場合に限っては

接続先がlocalhostなので普通に考えたら
ローカルサーバを接続先にしたエミュ。

Vの場合MIDlet-Network: Y が設定されてない場合に、
auの場合MIDlet-X-AllowURL-n: で指定されていないホストの場合に、
SecurityExceptionを吐き、前者は指定済みなので後者の可能性が高い。

auが通信に対応したのがPhase2以降とどこかに書いてあったので、、、

結論:多分phase2以降のezplus Emulatorじゃないかなぁ?

とかかなんとか推理はできるけど、
無駄な過程だし回答が不正確で遅くなるだけと思いますわん

169 名前:デフォルトの名無しさん [sage] 投稿日:04/08/31 02:02
JavaHzで同じような時間帯にそっくりの質問がソース付きで投稿されてる
同じ香具師かどうかはわからんが
>>166 多分正解
>>168 ezplusらしい。ナイス勘

170 名前:167 [sage] 投稿日:04/08/31 04:06
>>168
さんきゅ。そういう推理の仕方、俺も参考にしてみる。

171 名前:159 [] 投稿日:04/08/31 10:22
お騒がせしました。
通信の方はなんとかなりました。
大変ご迷惑をかけたことをお詫びします


実行環境はphase2のezplus Emulatorです・・

172 名前:159 [sage] 投稿日:04/08/31 10:44
原因は

tool→default envのotherkeywordだけしか設定してなかったためです

project→edit envの設定したら動きました。。。

173 名前:なっち(○´ー`○) [sage] 投稿日:04/08/31 16:44
ezplusの設定はまぎらわしいからねぇ。
とりあえずよかったね。

174 名前:デフォルトの名無しさん [sage] 投稿日:04/08/31 21:18
なんか、質問のためのテンプレでも用意しなきゃいけないような話題が続くとイヤだな。

175 名前:デフォルトの名無しさん [sage] 投稿日:04/08/31 22:19
うお、MIDPリファレンスの日本語版を
紹介しているサイトが存在したのか・・・。
ないものだとあきらめてからマジで嬉しい。


176 名前:なっち(○´ー`○) [sage] 投稿日:04/08/31 22:44
>>175
さかきけいさんが書いてるやつ?

177 名前:デフォルトの名無しさん [sage] 投稿日:04/08/31 23:29
>>176
うん、そう。
J2SEとVodafoneの日本語版リファレンスは
持ってたけど、MIDPのは持ってなかったから
ゲットできてよかったあるよ(○´ー`○)


178 名前:デフォルトの名無しさん [sage] 投稿日:04/08/31 23:38
そこの機種別スペック表も重宝するよね。
ありがたいことです。

179 名前:なっち(○´ー`○) [sage] 投稿日:04/09/01 00:03
急になくなったりしたらピンチなのです。。。

せっかく話題に出たので
有名かつ既出とは思うけどリンク張っとくね

日本語によるMID ProfileのAPIリファレンス
ttp://godwood.allnet.ne.jp/vioret/midpapi/

180 名前:デフォルトの名無しさん [sage] 投稿日:04/09/01 00:26
>>なっち
wgetとかでローカルに保存しとけばイイ

181 名前:なっち(○´ー`○) [sage] 投稿日:04/09/01 01:08
んーそうだねぇ。そうしようかな。

182 名前:デフォルトの名無しさん [sage] 投稿日:04/09/01 14:53
902SHがJATE通過したね。

MIDP2.0に乗り換えるかな。

183 名前:デフォルトの名無しさん [sage] 投稿日:04/09/01 21:00
http://www.eclipse.org/org/press-release/aug302004ercpcb.html
携帯電話/PDA向けのJava環境に関して、MotorolaとNokiaがSunを
無視してIBMにすりよるらしい。しかし携帯でRCPするってことは
SWTだけじゃなくてJFaceまで動かすつもりなんだろうか。

184 名前:デフォルトの名無しさん [sage] 投稿日:04/09/01 22:56
まぁ、モトローラもノキアもVoda向け3G端末出してくる訳だが。

185 名前:デフォルトの名無しさん [] 投稿日:04/09/02 16:06
質問です

ezplusの2.0でアプリを作っているのですが


aクラス→bクラス→cクラス
               ↑
↑              ここで再生している音楽を調整したい
ここで音楽を再生

この場合aクラスからbに移るときはMIDlet本体ごと渡しているのでカレントも完全に移動しています
cクラスからaクラスで再生した音を操作したい場合はどうすればいいのでしょうか
たとえば再生を停止したり、ボリュームを調節したり

186 名前:デフォルトの名無しさん [] 投稿日:04/09/02 16:18
やっぱり全てのクラスにMediaPlayerBoxのインスタンスをわたさなきゃダメでしょうか

187 名前:デフォルトの名無しさん [sage] 投稿日:04/09/02 20:12
>>185
>この場合aクラスからbに移るときはMIDlet本体ごと渡しているのでカレントも完全に移動しています
説明がまるで意味不明なんだがMediaPlayerBoxのインスタンス(mとする)を
オブジェクトa,b,cからいじりたいってことか?
だったらa,b,cでmの参照を保持するのが妥当だろう。(多分>>186で言ってること)
a,b,c,mを包含するオブジェクトxを用意してそこで制御するって案もある。

ていうか別にこのスレ向きの質問でもないような気が。

188 名前:なっち(○´ー`○) [sage] 投稿日:04/09/02 20:24
>>186
インスタンスを渡せない複雑な家庭の事情でもありまっするか?

操作するためには、なんらかの形でインスタンスを渡す必要は
あるんではないですかね。

コンストラクタが長くなって嫌だというのであれば

○専用のデータ保持クラスを用意して渡したいものはまとめて渡す
○abcがDisplayableで
必ずMIDletのインスタンスを渡しているというような設計なら
MIDletの中でMediaPlayerBoxを宣言・生成してやる。
○専用の初期化メソッドで渡す。
○staticでなんとかかんとかする。

というとこですかねぇ
結局は渡すわけですけど。
ひねってあまり珍妙なことをすると実機でトラブルかも。

189 名前:デフォルトの名無しさん [] 投稿日:04/09/02 20:40
>175
英語版見てから日本語版見たほうがいいよ。日本語版は情報が欠落しているから。


190 名前:デフォルトの名無しさん [] 投稿日:04/09/02 20:58
EZアプリ(java)で、赤外線通信はできますか?
プログラミングガイドで見つけれなかったけど、バンドルアプリで赤外線リモコンやってるみたいなんで。
できるときは、どこに資料がありますか?

同様に、VodafoneのVアプリで赤外線通信できますか?

191 名前:190 [sage] 投稿日:04/09/02 22:02
Vアプリの方は、すぐ資料がみつかりました。

192 名前:デフォルトの名無しさん [] 投稿日:04/09/02 23:12
さっきまで動いていたアプリがバージョンアップした途端に起動すると

ezplusを続行できません

となって起動できません

ソースを元に戻して再アップしてみたのですがそれでも動きませんでした

193 名前:デフォルトの名無しさん [sage] 投稿日:04/09/02 23:32
という大変な話があったとさ。
とっぴんぱらりのぷぅ。

194 名前:デフォルトの名無しさん [sage] 投稿日:04/09/03 00:22
>>190
そもそもEZアプリ(Java)が使える機種の中に
赤外線通信機能を持った機種がない。

195 名前:デフォルトの名無しさん [sage] 投稿日:04/09/03 01:05
ワロタ

196 名前:デフォルトの名無しさん [sage] 投稿日:04/09/03 10:56
>>194
スレ違いになりますが、BREWアプリだとできますか?

197 名前:デフォルトの名無しさん [] 投稿日:04/09/03 13:37
知的障害者がいるスレはここですか

198 名前:デフォルトの名無しさん [sage] 投稿日:04/09/03 13:46
>>197のこと?


199 名前:デフォルトの名無しさん [sage] 投稿日:04/09/03 16:13
>>196
スレ違いって分かってるなら面倒でもそっちのスレへ行って。
ttp://pc5.2ch.net/test/read.cgi/tech/1076511398/

200 名前:デフォルトの名無しさん [sage] 投稿日:04/09/03 16:16
>>199
すでにそっちでも質問してるんですが・・・

201 名前:デフォルトの名無しさん [sage] 投稿日:04/09/03 18:15
>>200
あっちで質問していればここで聞いてもいいってもんじゃないだろ

202 名前:デフォルトの名無しさん [sage] 投稿日:04/09/03 18:42
>>200
単なるマルチポストかよ。

203 名前:デフォルトの名無しさん [sage] 投稿日:04/09/03 22:09
>>186-188
話それちゃうけど、
オレの場合は、すべてのインスタンスへの参照を記憶する専用のクラス(インスタンス)を作って、
そいつへの参照を全員が知ってる、っていう形で適当に仕上げちゃうことがあるなぁ。

勝手に操作されちゃ困るほどの規模のアプリ組んだことがないからこそなせる技ではあるけど。


204 名前:なっち(○´ー`○) [sage] 投稿日:04/09/03 23:19
>>203
共通して参照するデータをまとめて扱うのって
むしろ定跡なんじゃないかなぁ。
ゲームのプログラムとか読んでると
ポコポコそういう構造体でてくるでそ。

メモリとかサイズ節約できるなんて副作用もありえるし
MIDPでは積極的にやった方がいいのかなってチラっと思いましたワ。

205 名前:デフォルトの名無しさん [sage] 投稿日:04/09/03 23:22
3個以上のクラスを作る余裕のある藻前らがうらやますぃです。

206 名前:なっち(○´ー`○) [sage] 投稿日:04/09/03 23:37
オシゴト ゴクロウサマデス・・・

207 名前:203 [sage] 投稿日:04/09/03 23:40
オナヂク ゴクロウサマドス
某ビューア5クラスドス

208 名前:なっち(○´ー`○) [sage] 投稿日:04/09/03 23:51
本音を言うと仕事で携帯アプリ作れる人がうらやましいです。
MIDletとCanvasだけで我慢するので誰か雇ってください。

209 名前:デフォルトの名無しさん [sage] 投稿日:04/09/04 00:07
なんでプロの人はオブジェクト指向したらいけないの?

210 名前:デフォルトの名無しさん [sage] 投稿日:04/09/04 01:06
>>209
そんな容量の余裕はありません。
あと、クラスを定義しないからオブジェクト指向ではない、というわけでもありません。

211 名前:デフォルトの名無しさん [sage] 投稿日:04/09/04 02:06
なるほど。


212 名前:デフォルトの名無しさん [sage] 投稿日:04/09/04 03:47
ちょっと待って。
仕事でやってる人誰もが容量で苦しんでるわけじゃない。そこら辺勘違いしないで。
iアプリの30KB制限のやつでもクラス3つ4つ定義してたりする。
結局作るものによる。(それを言っちゃぁおしめーか)

213 名前:デフォルトの名無しさん [sage] 投稿日:04/09/04 11:16
容量との戦いは1Mアプリになっても続くのだろうか(;´Д`)ハァハァ

214 名前:203 [sage] 投稿日:04/09/04 18:30
ちょっと想像したんだが、
状態変数やらフラグやらが山盛りあって、
状態をそこら中でチェックしまくりで、
しかも変数名が2文字とか、
そんな世界なんだろうか。。。

keyPressedの中身が5重ifとかで、
「横に長いディスプレイほすぃ」とか・・・

変数名が10文字から2文字に変わったとしても、
ちっさなpngファイル1つで埋まっちゃう。
ゲームアプリは、しょせん
グラフィックデザイナ>>>(越えられない壁)>>>プログラマ
とか。


215 名前:205 [sage] 投稿日:04/09/04 18:39
変数名の長さ切りつめは流石に……
そこを削りたければProGuardとかオブファスケータ
噛ませればいいだけだから気にしてないでつ。
メソッドを手動インライン展開するのも可能な限り最後の手。
でも、

>状態変数やらフラグやらが山盛りあって、
>状態をそこら中でチェックしまくりで、

これはそのたうりです、はい。漏れがヘボなだけってこともありえるがOTL

> keyPressedの中身が5重ifとかで、

これはキープレス・キーリリースのイベントハンドラでは
それこそビットフラグ立て下ろしするだけにして、
必要なときにフラグ見て処理、で何とか片付けてますた。

216 名前:デフォルトの名無しさん [sage] 投稿日:04/09/04 21:32
スレッドの数に制限ってあるの?

217 名前:デフォルトの名無しさん [sage] 投稿日:04/09/04 22:09
>>215
メソッドのインライン展開などは、Eclipseにやらせなさい

グラフィックデザイナっていうか、ドッターも、圧縮のこと考えて点打つ必要あり。
メモリ割り当てに関しては、プログラマの方が発言権が強いし。

ようするにゲームアプリ・ビジネスアプリ関係なく
金出す人・旗振り役 >>>(越えられない壁) >>>>しもじもの手動かす人

218 名前:なっち(○´ー`○) [sage] 投稿日:04/09/04 23:31
>>215
キー入力の話なんだけど
すぺて押下状態チェックで済ませてるの?

つまり、いついかなる状況でもキーを離すと
フラグが倒れて、押していると立っている感じ?
自前リピートチェックというか。

あんまり上手に説明できないけど。


219 名前:デフォルトの名無しさん [sage] 投稿日:04/09/05 00:10
>>218
> いついかなる状況でも

んなわけないだろ。

220 名前:デフォルトの名無しさん [sage] 投稿日:04/09/05 00:11
>218
実は前任者のソース使い回しだからあんまし理解できてないんだけどw
Pressのときは「押された」フラグを上げる。そのとき「押し離し」フラグは下げる。
Releaseのとき、「押された」フラグを下げて、「押し離し」フラグを上げる。

で、実際にキーの状態で処理を分けるときは、
・押したor押しっぱなし -> 「押された」フラグを見る
・押したけど押しっぱなしではない -> 「押し離し」フラグを見る

てな感じですた。あと、「離し押し」フラグとかもあったけど使わなかったので忘れた(爆)
あ、RepeatはPCのキーと一緒で最初のPressのワンテンポ後に発生するので
「押しっぱなし」の判定には使えないっす。

221 名前:なっち(○´ー`○) [sage] 投稿日:04/09/05 00:38
>>220
ああ〜「押し離し」は離したときに反映されるわけだね。
やっぱりリピートタイミング制御できない以上
みんなだいたい同じような処理してるのかな。
キーイベントとポーリングの折衷式というか。

222 名前:デフォルトの名無しさん [] 投稿日:04/09/05 23:04
最近Vodafone(P5型)のVアプリ作り始めて、
やっとJPEG画像(データフォルダ内)を
表示するところまで作れました。JAVA自体
触るの初めてなので、ここまで作るのにかなり
時間を使ってしまった・・・。しかしJPEG画像は
表示されたのですが、QVGAサイズの画像を
表示させると、もろに携帯ディスプレイから画像が
はみ出してしまいます。

Imageファイルを携帯のディスプレイサイズで表示
する簡単な方法はないでしょうか?


223 名前:なっち(○´ー`○) [sage] 投稿日:04/09/05 23:19
>>222
jadに
MIDlet-Application-Range: 0,0
記述してますかいな?


224 名前:222 [sage] 投稿日:04/09/05 23:34
>>223
はい、記述しています。
というかこれ、エミュレータ側のDisplaySize設定が
240×260の場合なら、画面いっぱいにQVGA画像が
表示されるということですか?
しかしどちらにせよ、「MIDlet-Application-Range: 0,0」
を記述していても、記述していなくても見た目変わらない
ように見えるのですが。

225 名前:デフォルトの名無しさん [sage] 投稿日:04/09/05 23:39
>>224
> MIIDlet-Application-Range: 0,0
の記述は確かに、エミュには関係しないな。実端末で影響する。

いわゆるQVGAサイズとは240*320(W*H)のこと。
画面サイズは240*260なので、はみ出して当然。
Javaから扱える画面はQVGAマックスではないので注意。

226 名前:222 [sage] 投稿日:04/09/05 23:45
>>225
エミュでは「MIIDlet-Application-Range: 0,0」の
記述は関係しないのですか。謎は全て解けました。
Javaから扱える画面はQVGAマックスではないのは
もちろん知っていましたが。

情報ありがとうございました。


227 名前:デフォルトの名無しさん [] 投稿日:04/09/06 17:58
ezplus からブラウザの起動ってどうやるんですか

phase2.1

です

228 名前:デフォルトの名無しさん [sage] 投稿日:04/09/06 19:23
アプリ自体を停止しないでスレッドの停止って出来たっけ?

たとえば
app1からthread1 thread2を開始させる
そしてthread2を停止してthread3を開始。 みたいな。

229 名前:なっち(○´ー`○) [sage] 投稿日:04/09/06 22:08
>>228
run()を抜けた状態が安全な停止にあたるので
実装したrun()の最後で
次のスレッドを開始すればいいんでないですかね。
CLDC/MIDPにstopに類するメソッドは定義されていないと思う。
ついでにスレッド違いでゴンス。

参考
ttp://www.gimlay.org/~javafaq/S019.html#S019-P6

230 名前:デフォルトの名無しさん [sage] 投稿日:04/09/06 22:26
>>228
オレも、他のスレッドを直接停止させることはできない、ってどっかで見たような気がする。

thread2は常時自分が生きるための権利を表すフラグをチェックしつつで、
app1がthread2を生かすためのフラグを下げて、
てな感じで対処すればいいと思う。

231 名前:デフォルトの名無しさん [sage] 投稿日:04/09/07 00:37
MIDP2.0使えるようで使えねーーーーーーーーーーーーーーーーー

232 名前:デフォルトの名無しさん [] 投稿日:04/09/07 16:21
>>227
(ノД`)ノ

233 名前:なっち(○´ー`○) [sage] 投稿日:04/09/07 23:12
>>232
EZアプリ(Java™)プログラミングガイドの
5−2(3)ではアカンの?

ttp://www.au.kddi.com/ezfactory/tec/spec/ezplus.html

234 名前:なっち(○´ー`○) [sage] 投稿日:04/09/07 23:14
まちがいた(2)だね

235 名前:デフォルトの名無しさん [] 投稿日:04/09/08 11:09
(ノД`)ノ かいけつしましたなっちありがろー

236 名前:デフォルトの名無しさん [sage] 投稿日:04/09/08 23:55
au 5407CAで、テキストフィールドに入っている改行がすべて
空白に変換されて表示しまうのですが、どうすれば良いでしょうか。

同じソースコードでvodafoneの601SHでは改行が反映されて
表示されました。

問題の部分のソースは、
textbox =new TextBox("コピー",stringdata,200,TextField.ANY)
Display.getDisplay(aapaste).setCurrent(textbox)

stringdataは、改行入りstring型データ(5文字×5行程度)

例)
hogehoge
aaaaaa
bbbbb
って入れたはずデータが、「hogehoge aaaaaa bbbbb」と
改行がすべて空白になって表示されます。

237 名前:なっち(○´ー`○) [sage] 投稿日:04/09/09 01:54
>>236
例)のデータってどうやって入力してるの?
Phase3のエミュだとエスケープシーケンスで
普通に改行されて表示されるけどん。

なお、実機依存の話だと
なっち(○´ー`○)には
手のほどこしようがありません。

238 名前:236 [sage] 投稿日:04/09/09 08:30
>>237
テキストファイルから読み込ませてます。

kjx作成ツールと一緒についてきたエミュレータ上では、
問題なく改行が表示されています。
もしかしたら実機依存の問題かもしれません。

239 名前:デフォルトの名無しさん [sage] 投稿日:04/09/09 11:04
>>238
確かに改行できない実機はいくつかありますよ。
A5403CAでも改行できなかったから、その後継(?)の5407も同様かも。
ちなみに5403では文字入力画面に入る際に、
 使用できない文字があるのでスペースに置き換えます
とかいうダイアログがでて置換されます。

自分の場合、頻度の少ない記号(~とか)を改行文字の代わりに使ってます。
byteデータの段階で改行コードに当たる数値を代替記号のコードに入れ替えて
その後でStringに変換して使ってます。
実際の改行を含んだデータにしたい場合は逆の操作で。
結局入力画面では改行されないので解決と言えるかはわかりませんが・・。

240 名前:なっち(○´ー`○) [sage] 投稿日:04/09/09 12:14
\nエスケープも効かず?
まぁ効いても同じことかな。

241 名前:デフォルトの名無しさん [sage] 投稿日:04/09/09 12:59
auのテキストフィールドの改行は機種依存だってJavaDocに書いてあるよ。

242 名前:236 [sage] 投稿日:04/09/09 21:41
>>239-241
返事遅くなりました。ありがとうございます。

やはりカシオ機の機種依存ですか。レスを読んだ後、気になったので、
実機を貸して貰って、テストしましたが、上に書かれているように
「使用できない文字があるので、、」となりました。

>>241
そうだったんですかorz

代替記号を使ってなんとかしてみるかなあ。

243 名前:デフォルトの名無しさん [sage] 投稿日:04/09/10 14:41:41
TextBoxとかラベルとかをGUIベースで配置できる
フリーの開発環境ってありますか?

前はJBuilderでしこしこ手書きしてたんですが。
ちなみにKDDIPです

244 名前:デフォルトの名無しさん [sage] 投稿日:04/09/10 15:36:01
そんくらい手書きしろ。

245 名前:デフォルトの名無しさん [sage] 投稿日:04/09/10 20:27:01
>>243
配置も何も、上から順に並んでくだけなのに必要ないだろ。

246 名前:デフォルトの名無しさん [sage] 投稿日:04/09/10 21:21:00
URLエンコードってどうにかしてVodaとAU
同じアプリで動かす方法ってないですか?



247 名前:なっち(○´ー`○) [sage] 投稿日:04/09/10 23:20:35
>>246
誰かしら作ってそうだけど、自前で実装ですかな。

248 名前:デフォルトの名無しさん [sage] 投稿日:04/09/10 23:58:26
ちょっと、お聞きします。
m3DPrgV_201.pdfにある

First3D.java
siba.mbac
siba.mtra
siba.bmp
siba_sphere.bmp

...はどこかでダウンロードできますか?

249 名前:248 [sage] 投稿日:04/09/11 01:49:15
自己レスです。
SDKに.javaファイル以外はありました!
.javaファイルはpdf見ながら打ち込みます。

250 名前:デフォルトの名無しさん [sage] 投稿日:04/09/11 11:19:38
>249
……おーい。PDFって大概コピペできるの知らないのかー?
まぁ久々にタイピングの練習をしようってんなら止めないけどさ……

251 名前:デフォルトの名無しさん [sage] 投稿日:04/09/11 11:58:45
そういや、VodaのPDFはセキュリティでコピー不可に設定されてるな。
不便だろ。

252 名前:248 [sage] 投稿日:04/09/11 12:45:05
m3DPrgV_201.pdfはテキスト出力できるpdfだったので、
どうにか助かりました。

253 名前:デフォルトの名無しさん [sage] 投稿日:04/09/12 00:09:55
>>247
自前で実装・・・

自分でそのソースを書くってことですか?
それともどこかからひっこ抜いてくるってことですか?

254 名前:なっち(○´ー`○) [sage] 投稿日:04/09/12 01:10:32
>>253
J2SEのソースのぞいてみて。java/net/URLEncoder.java

255 名前:デフォルトの名無しさん [sage] 投稿日:04/09/12 13:17:57
>>254
レスサンクス
これでさらにimportに書かれてるやつもコピーすればいいのですか?

よく分からなくてスミマセン。。

256 名前:デフォルトの名無しさん [sage] 投稿日:04/09/12 13:19:29
>>255 コピーはライセンス上いかん。
と一応いっておく。

257 名前:デフォルトの名無しさん [sage] 投稿日:04/09/12 14:05:03
まあ、誰が書いても大差ないコードができるけどw

258 名前:243 [sage] 投稿日:04/09/12 20:28:19
VS.netでMobileWebApplicationとか作ると
てがっきーから解放されてあまりの楽さにうつつを抜かしてました。
最悪コピペするかな…?

259 名前:デフォルトの名無しさん [] 投稿日:04/09/12 20:31:55
Vodafone(P5型)のアプリでリストを作成し、
そのリスト表示する処理を作ろうとしています。
MIDPでListというクラスがあったので、使ってみた
のですが、リストの表示画面が白黒でショボイので
使い物になりません。

みなさんはリストの表示処理を、どんな方法で行って
いますか?自分でリストの文字列やカーソルを作成し、
描画をしているのでしょうか?



260 名前:デフォルトの名無しさん [sage] 投稿日:04/09/12 23:43:45
>>259
>使い物になりません。
と思ったら、自分で作れば良いだけのこと。


261 名前:なっち(○´ー`○) [sage] 投稿日:04/09/13 01:39:23
>>255
>これでさらにimportに書かれてるやつもコピーすればいいのですか?

てなことをやっていると
とんでもないサイズのライブラリが出来かねないので
あくまで参考にして自分で書き起こすのがよいのでは。

262 名前:デフォルトの名無しさん [sage] 投稿日:04/09/13 01:40:48
>>259
> 自分でリストの文字列やカーソルを作成し、
> 描画をしているのでしょうか?
やってますが何か?

263 名前:デフォルトの名無しさん [sage] 投稿日:04/09/13 21:58:09
>>262
やはりみんな自分でリストを作成していましたか。
僕も自分でリストを作成してみます。


264 名前:デフォルトの名無しさん [sage] 投稿日:04/09/14 13:36:00
質問です。
ネット上のBMP画像を取り込んで、
それをテクスチャに使うことは可能でしょうか?

265 名前:デフォルトの名無しさん [sage] 投稿日:04/09/14 14:43:23
すくなくとも、自分でレンダリングエンジンを作れば可能だな。

266 名前:デフォルトの名無しさん [sage] 投稿日:04/09/14 23:10:30
現在、待ち受けアプリを製作しているのですが、
C4型にて奇妙な現象が起こりました。

あるアプリダウンロードサイト(A)ではダウンロードできるのですが、
別のサイト(B)では落とすことができません。
最終的にはBのサイトにアップする必要があるので、困っています。

状況として、、、
・ほぼ同等の機能を持つP4、P5版のアプリはA・B両方のサイトから問題なく落とせる。
・C4版のJAR、JAD、レコードストアの合計サイズは50000バイト以下。(容量の問題ではなさそうです)
・ある端末ではダウンロード選択後、何も出てこない。
・別のある端末では、ダウンロード選択後に"JARが見つかりません"みたいなメッセージが出る。
 (もちろん、JARファイルもJADと一緒にアップしました)

いったい何が原因なのでしょうか?

267 名前:デフォルトの名無しさん [sage] 投稿日:04/09/15 01:22:35
>>266
MIDlet-OCLが書いてないとおかしくなるような仕様変更があったとかいう話が過去ログにあったような気がする。
とりあえずこれ書いて再度テストしてみて。
MIDlet-OCL: JOCL-1.0.0

ちなみに、あるアプリダウンロードサイト(A|B))とか書かれても、
どうせ一般向けのは2つしかないんだし・・・

268 名前:なっち(○´ー`○) [sage] 投稿日:04/09/15 01:26:26
アプリゲットなら
審査通知メール見る方がはやいね。
多分はじかれてるよ。

269 名前:266 [sage] 投稿日:04/09/15 09:01:47
レスありがとうございます。

>267
それは書いてあります。
確認しました。

>268
アプリゲットはダウンロードできるほう(A)です。
週刊ゲーム&アプリLiveにアップしたものがうまくいきません。

追記ですが、他のC4アプリは問題なくアップ&ダウンロードできます。

270 名前:デフォルトの名無しさん [sage] 投稿日:04/09/16 15:47:07
今EZアプリをつくろうと試みてはいるもの
どうにもアクションなどのMAPの書き方がわからないのですが
どなたか教えてもらえないでしょうか?
int[][] map={
{0,0,0},
//省略
{1,2,3}}
コンストラクタで画像の取得
画像の表示の仕方が不明…
public void paint(Graphics g){
int no;
for(int j=0;j<3;j++){
for(int i=0;i<3;i++){
no = map[j][i];
g.drawImage(img[no], 64*i,64*j,?);
}
}
こんな感じでやっていたのですが


271 名前:デフォルトの名無しさん [sage] 投稿日:04/09/16 16:22:22
>270
基本的な枠組みはそれで合ってると思うんだが
何が問題なんだ?

272 名前:270 [sage] 投稿日:04/09/16 20:38:58
すみませんorz
コンストラクタ内の画像取得のところでミスをしていました
try{
for(int i=0;i<=8;i++){
img[i]=Image.createImage("/"i.PNG");
}
}catch(Exception e){}
としていてi.PNGしか読み込んでなかったです
お騒がせしました

273 名前:デフォルトの名無しさん [] 投稿日:04/09/16 21:52:53
ちょっと質問させてください。
レコードストアのsetRecordって、対象のレコード全体を書き換えるものなんですか?
1レコード内でデータを分割して、必要な部分だけ保存しようと思ってるんですが、
レコード用のバッファを別に用意しなきゃだめですか?

274 名前:デフォルトの名無しさん [sage] 投稿日:04/09/16 22:30:53
JSR172ってもう実装出回ってたのか...

275 名前:デフォルトの名無しさん [sage] 投稿日:04/09/16 22:43:44
>>273
そういうことになるね。
俺がやってるやり方だと
byte[] rs_bufferで長さはレコードの長さだけ
んでこのrs_bufferにSystem.arraycopy()を使えば部分的なデータの書き込みは簡単にできる。
あとはrs_bufferを第2引数に指定してsetRecord。
他にいいやり方知ってる人いたら教えてくださいな。

276 名前:273 [] 投稿日:04/09/16 23:41:32
>275
勉強になりました。
ありがとうございます。

System.arraycopy()の使い方勉強しなくちゃ…

277 名前:デフォルトの名無しさん [sage] 投稿日:04/09/16 23:44:58
現在Vodafoneの待ち受けアプリを作成しているのですが
テスト中にどうも対応の仕方が不明な不具合が出てしまいました

【現象】
自作待ち受けアプリを待ちうけ設定にして携帯を閉じた状態にしておいて
アラーム、メール着信時に携帯を開くとアプリがうまく動作しない
着信を止めるとアプリがエラー終了する
着信が終わるのを待つとアプリが起動し正常動作する

ちなみに開いた状態で着信を受けたとき、閉じ状態でも電話着信のときは
正常動作します

同じような現象を確認したかたいらっしゃいましたら
回避方法を教えてください

278 名前:デフォルトの名無しさん [sage] 投稿日:04/09/16 23:58:59
Vアプリの256kはマスカプver3だというのを、んぱかで見たのですが、
Vアプリってプリミティブ(点・線・三角とか)使えます?
開発ツールのJavadoc、サブクラスとかには入ってなかったのですが、
com.jblend.graphics.j3dにEZのm3dのを入れてコンパイルできたら
実は実機では動くとかってありますか?

今プリミティブだけでちょっとした3D作れないかと考えてるんですが・・。
モデリングツールとか手が届かないですし・・。

279 名前:デフォルトの名無しさん [sage] 投稿日:04/09/17 09:50:48
>>277
P4型、P5型、P6型、W型のどれ?
実機で確認していると思うんだけど、
どのメーカーのでも発生するの?


280 名前:277 [sage] 投稿日:04/09/17 21:09:04
>>279
実機はSH53を使用しています
他の機種ではまだ確認していないです
身近に別の機種を持ったテストを頼める人間がいないもので...

281 名前:277 [sage] 投稿日:04/09/17 23:15:23
一応

MIDlet-Resident: Y

MIDlet-Resident: S

とすることで回避はできることがわかりました
が、私はP4,P5機種をターゲットで考えていたので
上記設定で問題回避することはできません...

282 名前:277 [sage] 投稿日:04/09/18 00:01:35
何度もすいません
仕方なくユーザーが任意の一時停止動作(閉じるor電源ボタン押下)
の場合はアプリを終了するようにしました

終了状態の場合開ける動作による復帰よりも早く
ネイティブの着信処理が走るため一応形としてはエラー終了がなくなりました

283 名前:デフォルトの名無しさん [sage] 投稿日:04/09/18 01:16:41
イベント発生タイミングで、ぬるぽができてるだけじゃないのかなぁ。
「エラー終了」って、要するに例外が発生して、それを捕まえてないってことでしょ?
なんか「エラー終了」って言葉使うあたりで例外ハンドリングの甘さが漂うんだけど。

284 名前:デフォルトの名無しさん [sage] 投稿日:04/09/18 10:54:35
一時停止時の処理からの復帰に変なのを書いてるだけのような気がするんだけど、どうかな。

大まかには
> アプリがエラー終了する
から、例外スルーで間違いないでしょ。
たとえば、アドレス帳登録されてないとこからの着信時は名前がnullになるとか。

285 名前:デフォルトの名無しさん [] 投稿日:04/09/18 21:31:08
EzPlusで、
http://www.crosslanguage.co.jp/webdic/webdic.htmlを利用するプログラムを作ろうと思ってるのですが、
http://www.crosslanguage.co.jp/webdic/webdicc.cgi?adrs=moe@2ch.net&word=萌え&lang=x&dic=BASE&magazine=yes
のようなURLで
c =(HttpConnection)Connector.open(url);
in=c.openInputStream();
byte[] data=new byte[(int)c.getLength()];
とすると、c.getLength()が-1になってしまいます。
urlを他のサイトに変えてみると問題なく動くのですが、
何がいけないのでしょうか?



286 名前:デフォルトの名無しさん [sage] 投稿日:04/09/18 22:23:48
シューティングの背景のスクロールはどのようにしたらいいのでしょう?
画面を少しずつずらしていくものなのでしょか

287 名前:デフォルトの名無しさん [sage] 投稿日:04/09/18 23:37:12
それをスクロールと呼ぶのではないのかね

288 名前:デフォルトの名無しさん [sage] 投稿日:04/09/18 23:40:02
>>286
DoCoMoの例だけど、参考になるはず。
http://pc5.2ch.net/test/read.cgi/tech/1091286071/258-262

289 名前:デフォルトの名無しさん [sage] 投稿日:04/09/19 05:40:34
>>285
サーバ側のContentLength設定次第なので普通に起こりえることだよ。
byte[] data;
int len = (int)c.getLength();
if (len == -1) data = new byte[256];
else data = new byte[len];
とでもすればいいかと。それでin.read()をループ。

>>286
RPGのマップのようなマス目単位の背景をスクロールさせるなら>>288のURL先へ。
1枚の長ーい背景をスクロールさせる場合は、その背景を適当な長さで分割しておき、
読み込み→ずらして表示→画像の端まで来たら続きを読み込み→…と繰り返していく。

290 名前:277 [sage] 投稿日:04/09/19 10:52:14
>>283
例外処理をおろそかにしていたのでちゃんとやってみます

>>284
具体的には一時停止状態にする場合Threadを停止していないせいだと思います

とりあえず閉じ状態からの着信があった場合のイベント処理順番は
依然として不明のままです...

291 名前:285 [sage] 投稿日:04/09/19 11:39:57
できました!
多謝 多謝!

292 名前:デフォルトの名無しさん [sage] 投稿日:04/09/19 15:19:20
MIDPって正規表現使えないのか… orz

293 名前:286 [sage] 投稿日:04/09/19 18:45:05
>>288,289
なんとかできそうです。
ありがとうございました。


294 名前:デフォルトの名無しさん [sage] 投稿日:04/09/20 11:45:33
当方java初心者です。

質問があります。
LISTのカスタマイズ(継承)の話が上であったと思うのですが、
javadocをみながら継承している流れを追ったりしてみましたが、
イマイチどう、カーソルやリストを作成すればいいのかイメージが
わきません。
LISTを継承して拡張するような方向で考えているのですが、
背景を変えたりすること自体がCanvasクラスでの方法しか思いつかず
四苦八苦しています・・・

ヒントをいただけたら幸いです

295 名前:デフォルトの名無しさん [sage] 投稿日:04/09/20 15:38:49
>>294
Listなど、MIDPのUIクラスの描画は実装によって行われる。
つまり、実装依存であり、その描画内容などをプログラムから取得したり変更したりするすべはない。

296 名前:デフォルトの名無しさん [sage] 投稿日:04/09/20 15:40:28
というか、リストなんて一から自分で書いても大して難しくもないと思いますが。

297 名前:294 [sage] 投稿日:04/09/20 16:01:14
ああ、UIコンポーネントはみな実装依存か、、、
分かりました。一から作成するほうで考えて見ます。

どうもありがとうございました

298 名前:デフォルトの名無しさん [] 投稿日:04/09/20 22:03:45
short型の数字をbyte[]に変換したいのですが、どうすればいいでしょうか?

byte[]に変換したいのはRecordStoreに保存したいからです。

299 名前:デフォルトの名無しさん [sage] 投稿日:04/09/20 23:58:44
>>298
前スレにそんな話題がでてた希ガス

300 名前:デフォルトの名無しさん [sage] 投稿日:04/09/21 00:33:25
>>298
ビット幅気にしないのなら無理矢理キャストすればいい。
気にするなら、たとえばオレのやってるの

(int valueをtmpに入れる場合)
byte[] tmp = new byte[4];
tmp[0] = (byte)value; value>>=8;
tmp[1] = (byte)value; value>>=8;
tmp[2] = (byte)value; value>>=8;
tmp[3] = (byte)value;

301 名前:298 [sage] 投稿日:04/09/21 09:35:02
>>300さん
ありがとうございます。
これって符号もオッケイなんでしょうか?
一応±32000くらいまでを扱うつもりなので。
shortなので、
tmp[0] = (byte)value; value>>=8;
tmp[1] = (byte)value;
でやってみます。
ありがとうございました。
#とはいえちょっとしばらくは手がつけられなかったり…

302 名前:デフォルトの名無しさん [sage] 投稿日:04/09/22 22:16:52
ttp://k-tai.impress.co.jp/cda/article/news_toppage/20667.html

MIDP2.0、とうとうボダで出るのか

303 名前:デフォルトの名無しさん [sage] 投稿日:04/09/22 22:27:31
こっちは一般公開されなさそうな気がする。

304 名前:デフォルトの名無しさん [] 投稿日:04/09/22 22:52:44
shortで間に合う範囲を
intでやるのとlongでやるのだとやっぱり実行速度も
short > int > long
になるんですか?


305 名前:デフォルトの名無しさん [sage] 投稿日:04/09/22 23:05:18
それは実機で計ってみないとなんとも。
32ビットWindowsなら理屈ではintが有利なはずだ(エミュでも多分そうだろう)が

306 名前:デフォルトの名無しさん [sage] 投稿日:04/09/22 23:27:19
vodaのMIDP2.0+VSCLは一般公開できないの?


307 名前:298 [sage] 投稿日:04/09/22 23:59:16
何度もすいません。
int value=123123; //数字は適当
temp[0] = (byte)value;
value = value>>8;
temp[1] = (byte)value;
value = value>>8;
temp[2] = (byte)value;
value = value>>8;
temp[3] = (byte)value;
int a_value = ((int)temp[3]<<24) & ((int)temp[2]<<16) & ((int)temp[1]<<8) & ((int)temp[0]);
としてもa_valueと元のvalueが一致しないのはどこが悪いんでしょうか… 


308 名前:デフォルトの名無しさん [sage] 投稿日:04/09/23 00:47:02
> int a_value = ((int)temp[3]<<24) & ((int)temp[2]<<16) & ((int)temp[1]<<8) & ((int)temp[0]);

これが悪いんじゃないの?
(temp[0] & 0xFF) とかやんないと駄目でしょ
byteの0xFF(10進で-1) をintにしたら0xFFFFFFFFだよね?

309 名前:300 [sage] 投稿日:04/09/23 00:57:47
>>307
オレはこんな風に元に戻してる。
value = 0xFF&tmp[3] ; value<<=8 ;
value |= 0xFF&tmp[2] ; value<<=8 ;
value |= 0xFF&tmp[1] ; value<<=8 ;
value |= 0xFF&tmp[0] ;

もうちょっとマシな書き方がある気もするけど、
ビット操作好きじゃないからまぁちゃんと動けばいいかなと思ってる。

310 名前:デフォルトの名無しさん [sage] 投稿日:04/09/23 04:02:20
>>304
int が一番速い。

311 名前:298 [sage] 投稿日:04/09/23 11:35:54
みなさんなんどもありがとうございます。
おかげさまで以下のようにし、無事動作しました。
public long bin2long(byte[] b){ long j=0;
j |= (long)((b[0] & 0xFF)) << 56;
j |= (long)((b[1] & 0xFF)) << 48;
j |= (long)((b[2] & 0xFF)) << 40;
j |= (long)((b[3] & 0xFF)) << 32;
j |= (long)((b[4] & 0xFF)) << 24;
j |= (long)((b[5] & 0xFF)) << 16;
j |= (long)((b[6] & 0xFF)) << 8;
j |= (long)((b[7] & 0xFF)); return j;}
public byte[] long2bin(long l){ byte[] b = new byte[8];
b[0] = (byte)(l >> 56);
b[1] = (byte)(l >> 48);
b[2] = (byte)(l >> 40);
b[3] = (byte)(l >> 32);
b[4] = (byte)(l >> 24);
b[5] = (byte)(l >> 16);
b[6] = (byte)(l >> 8);
b[7] = (byte)(l); return b;}
public int bin2int(byte[] b){ int j=0;
j |= (b[0] & 0xFF) << 24;
j |= (b[1] & 0xFF) << 16;
j |= (b[2] & 0xFF) << 8;
j |= (b[3] & 0xFF); return j;}
public byte[] int2bin(int i){ byte[] b = new byte[4];
b[0] = (byte)(i >> 24);
b[1] = (byte)(i >> 16);
b[2] = (byte)(i >> 8);
b[3] = (byte)(i); return b;}

312 名前:デフォルトの名無しさん [sage] 投稿日:04/09/23 17:42:44
>>306
未定

313 名前:デフォルトの名無しさん [sage] 投稿日:04/09/25 02:05:16
えーと、どこ探しても見つからなかったんで質問します
今StorageConnectionで外部メモリのテキストファイルを読み込もうとしてるのですが何度やってもエラーが出てコンパイルできません。
自分じゃあ分かりそうに無いし書籍探してもHttpConnectionのソースしか書いてないしでどうしようもなくなったんで
どなたかStorageConnection使ってテキストファイルを読み込む簡単なソース貼ってくれないでしょうか
あと、ついでなんで画像もHttp使うのしか分からないんで外部から読み込む簡単なソースお願いします。

なんか頼みばっかなんですがスンマセン宜しくおねがいします

314 名前:デフォルトの名無しさん [sage] 投稿日:04/09/25 02:54:56
>どこ探しても見つからなかった
>>13

315 名前:313 [sage] 投稿日:04/09/25 09:12:54
13のソースを適当にぶっこんでみたけど動かんかった。
で、今のソースが下の

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import java.io.*;
import javax.microedition.io.*;

public class CCanvas extends Canvas {
private String info="null";
public interface StorageConnection{}

CCanvas() {
}

316 名前:313 [sage] 投稿日:04/09/25 09:16:39
13のソース適当にぶっこんでみたが動かんかった
もしかしてJ2ME Wireless Toolkit 1.0.4_01じゃ無理とか?
始める時にこのバージョンでやれって言われたのだが・・・

317 名前:313 [sage] 投稿日:04/09/25 09:30:01
315ミスっぽ

318 名前:デフォルトの名無しさん [] 投稿日:04/09/25 10:47:06
byte[] → Stringって
String hoge = new String(byte[])
って方法でいいんですか?
なんか方変換したいだけなのにnewするのに違和感があって。
Byte.toString(byte[0])+Byte.toString(byte[1])…
とかのほうがいいんですか?

319 名前:デフォルトの名無しさん [sage] 投稿日:04/09/25 11:28:44
>>316
>>13以降に続くレスも読んだ?そこでは結論出てるようだけど。

>>318
示した2つの方法で得られるものは違う。結果としては何が欲しいの?
byte[]に文字コードが入っててそれが示す文字列にしたいなら上の方法で。
byte[]1つ1つの要素が表す数値を数字としてつなげたいなら下の方法で。

それから>>318は基本的な理解が不足してる模様。
byteやintはプリミティブ型、対してStringはクラス。クラスを生成するには
Canvasなどと同様でnewするものだろう?
文字列を+でつないでいくのも内部的にStringBufferが生成されてaddが
行われているだけ。詳しくはCLDCのAPIリファレンスでStringのとこ読んで。

320 名前:デフォルトの名無しさん [sage] 投稿日:04/09/25 11:30:51
補足。
Byte.toString(byte[0]) …こんな書き方のものはない。

321 名前:313 [sage] 投稿日:04/09/25 18:48:38
>>319
すまん漏れの頭悪すぎて分からん

一応、P5型のアプリ作成する時のソフトウェア環境どなたか書いてもらえます?
ヴァージョンも。

322 名前:デフォルトの名無しさん [sage] 投稿日:04/09/25 23:05:23
Vアプリ作って見ようかと思ってその辺で拾ってきたソースをコンパイルしようとしてみたら
パッケージ com.j_phone.io は存在しません。
って出るんだけどこれどうすりゃいい?


323 名前:13 [sage] 投稿日:04/09/25 23:18:13
いや、まさしく13なんですが(以前も以後も何度もスレに顔出してますが)
>>313
> 何度やってもエラーが出てコンパイルできません。
だから、コンパイルができてないという状態だと思うんですが。。
だから13とは関係ないと思うんですが・・

classpathでstubclasses.zipを指定してないというオチでは?
>322も。
http://www.saturn.dti.ne.jp/~npaka/kvm/javapress/coolskiers/support.html

324 名前:デフォルトの名無しさん [sage] 投稿日:04/09/26 00:01:49
322だす
-bootclasspathでstubclasses.zipを指定してみたのだが
エラー: *.java を読み込めません。
エラー 1 個
って出る・・・・何故だ・・・。

325 名前:デフォルトの名無しさん [sage] 投稿日:04/09/26 00:03:56
>324
コマンドラインそのまま晒してみれ。

326 名前:デフォルトの名無しさん [sage] 投稿日:04/09/26 00:11:43
bootclasspathのとこだけでいい?

C:\j2sdk1.4.2_05\bin>javac -bootclasspath c:\v-appli_sdk_121\lib\stubclasses.zip -g:none *.java
エラー: *.java を読み込めません。
エラー 1 個

327 名前:デフォルトの名無しさん [sage] 投稿日:04/09/26 00:20:41
……うゆ?
コンパイルするソースもC:\j2sdk1.4.2_05\binに置いてるん?
それともカキコ用に適当なパス書いただけ?

まさかとは思うけどカレントディレクトリ間違ってない?

328 名前:デフォルトの名無しさん [sage] 投稿日:04/09/26 00:25:34
むむ

パスってjavac.exeが置いてあるとこじゃないの?
set path=c:\j2sdk1.4.2_05\bin\;C:\wtk104\bin;
てしたから始めはjavac.exeの場所じゃないと思ったんだが、c:\j2sdk1.4.2_05以外だとjavacが見つかりませんてエラーでたし・・・

えーと、パスはコンパイルするソースが置いてあるところなわけだな。
もう一回set pathからやり直して見る

329 名前:デフォルトの名無しさん [sage] 投稿日:04/09/26 00:38:08
set pathし直したらjavac動いた。

が、試しにmyMIDletってのをコンパイルしてみたんだが
myCanvas.classとmyMIDlet.classってのが出来て、outputてフォルダの中に同名でサイズが違うのが出来た
んで、jar cmf MANIFEST.MF myMIDlet.jar -C output .
て実行したらMANIFEST.MFが見つからんとか
これって手書きで作成?

あと、コマンドラインでコンパイルするのとJ2ME Wireless Toolkitのビルドとどう違うん?

330 名前:デフォルトの名無しさん [sage] 投稿日:04/09/26 00:44:59
む。漏れは普段はant使ってる人なのでWireless Toolkitがどうなってるか忘れた(汗)
ただ、環境変数PATHにjavac.exeの位置が入ってなくても
絶対パスで動かすんで無問題だったかな > Toolkit
後はコマンドラインだと手作業、Toolkitは一括でjarまで作る、くらいかな、違いは。
(手作業っつっても、バッチ作るなりそれこそant入れるなりすればさして手間はかからん)

MANIFEST.MFは手書き……だと思う。一回書いたらそうそう書き換えることもないっしょ。

331 名前:13 [sage] 投稿日:04/09/26 00:51:49
Wireless Toolkit使ったら、
jad/MANIFESTの作成から、javac/preverify/jarまで一括でやってくれるんじゃなかったっけ?
オレも使ってないから知らん。
一回書いたらほとんど直さないから、手書きでいいと思う。

入門記事
http://www.itmedia.co.jp/mobile/0203/08/n_j1.html

332 名前:デフォルトの名無しさん [sage] 投稿日:04/09/26 01:03:22
質問ばっかりでごめん

Wireless Toolkitだとcom.j-phone.ioは存在しませんってエラーになってビルド出来ない
コマンドラインでやればエラー出ずコンパイルできたけどjad手書きしてエミュで実行してみたら
MicroEdition-Configurationの項目が存在しません
ってエラー出てロード出来ん
jadの中身↓
MIDlet-1: FileSystem, FileSystem.png,
MIDlet-Name: FileSystem
MIDlet-Vendor: sun
MIDlet-Version: 1.0
MIDlet-Application-Range: 0,0
MIDlet-Network: Y
MicroEdition-Profile: MIDP-1.0
MicroEdition-Configuration: CLDC-1.0
MIDlet-Jar-URL: FileSystem.jar
MIDlet-Jar-Size: 1843

antっての使ったほうがコンパイルとかなの?

333 名前:322 [sage] 投稿日:04/09/26 02:00:59
http://homepage1.nifty.com/cotton100/jphonejava.htm
ここに

(補足)
なお、J2ME WirelessToolkitを、コンパイル環境として使う場合は、
JSCLのライブラリ(stubclasses.zip)を解凍、CLDCライブラリも解凍して、2つを統合し
上記の「非圧縮zip」で圧縮すれば使えるそうです。

って書いてあるんで試してみます・・・。
これ出きればコマンドライン使わずにいけそうなので。
て、kjxでも同じかな…まあ試して見る

334 名前:デフォルトの名無しさん [sage] 投稿日:04/09/26 02:04:05
うちではantもコマンドラインも使わずにWTK104でボーダのビルドやってるが。
WTKのlibディレクトリのmidpapi.zipには当然ボーダ固有のAPIは含まれてないので
com.j-phone.*を使うようなアプリではコンパイルでエラー。
WTK使ってる限りは-bootclasspathの指定とかできないからstubclasses.zipを
midpapi.zipにリネームして置換してる。
au/docomoでコンパイルする場合は元のmidpapi.zipを使ってる。

335 名前:322 [sage] 投稿日:04/09/26 02:40:49
両方のファイル開いてみると、midpapiに含まれてるファイルが全てstubclassesに含まれてない感じ。
だから、多分
stubclasses.zipにmidpapi.zipの内容が全部含まれてないからリネームだけじゃ駄目かと思う。
多分だから間違ってたら指摘よろ

・・・と、漏れはstubclasses.zipの内容をどうやってmidpapi.zipに統合しようか悩んでるわけだが。

>>13 & 他の人
stubclassesの統合でWirelessToolkit使ってjad/mfの生成できそうです
親切に教えてくれて多謝多謝!
WTK使ってコンパイル出きるようにがんばる

336 名前:334 [sage] 投稿日:04/09/26 05:02:36
>>335
確かにmidpapiが全てstubclassesに含まれているわけではないが
midpapiのうちボーダの開発には不要なAPI(サポートしていない機能)が省かれている
だけのようなので、自分では単純にリネームしたものを使っている。
何ら保障するわけではないが、これで不都合は起きていない。

ちなみに2つを統合するならこれでOK
1.midpapi.zipとstubclasses.zipを解凍する
2.midpapi側を全てstubclasses側に上書きコピーする
3.stubclasses側を無圧縮zipで固めて、midpapi.zipにリネームする
はじめ自分はこれでやってたんだが、統合したもの(自分で作ったもの)を使うってのが
逆になんか気持ち悪くて今の方法(リネームして置換)に変えた次第。

337 名前:デフォルトの名無しさん [] 投稿日:04/09/26 11:49:53
Canvasで何かを描く時、
getWidth()をよく使うんですが、
これって起動してすぐにint width = getWidth()
とかしてその後は毎回getWidth()する代わりに、widthを使った方が
早かったりしますか?

338 名前:322 [sage] 投稿日:04/09/26 12:59:25
>>334
統合したらWTKで今までcom.j-phone.io見つかりませんってエラー出てたの出なくなりビルドできました。
これでJSCL使ってもいけそうです


んで、JSCL使ったテストアプリを色々と試してみてるのだけど313と同じくStorageConnectionがうまく動きません。
サンプルソースがどこ探しても無いしHttpConnection使ったサンプルソースのHttpの部分をStorageに書き換えて試して見たが、ビルドエラー無いけどエミュで実行してみても読み込み出来ず。
ちょいとソース上げたので、見てやってもいいぞって人いれば間違い部分指摘して下さい

ttp://namihei.zone.ne.jp/cgi-bin/up/upload.cgi
の、21945

ちなみに読み込むテキストはV-appliエミュレータがインストされてるフォルダのbin内IntStorageの中に置いてあります。

339 名前:デフォルトの名無しさん [sage] 投稿日:04/09/26 13:12:49
あんまりしょっちゅう呼び出す(ソースに記述する箇所が多い)なら変数に代入して
保持してていいんじゃないかな。あくまで見やすさと記述の手間を省くという点で。
その程度で速さは稼げないから。

340 名前:デフォルトの名無しさん [sage] 投稿日:04/09/26 13:14:36
>>339>>337向け

341 名前:322 [sage] 投稿日:04/09/26 13:28:22
>>337
速さは稼げないけど、ファイルサイズが小さくなるのと見やすくなるって利点はある
・・・と思う
あ、でもアプリを使う機種が限定されてたりするなら値で入れといてもいいかもね
・・・多分

342 名前:337 [sage] 投稿日:04/09/26 13:45:02
170x130程度からQVGAまで対応したいので、
変数に代入する方で行きます。

ありがとうございました。

343 名前:322 [sage] 投稿日:04/09/26 13:57:03
やっぱどうやってもStorageConnectionで読み込めん。
JSCL1.2.xの参考書でいいのとかあります?
手持ちの書籍じゃJSCL1.1までしか対応(書いて)してない(´д`;)

344 名前:デフォルトの名無しさん [sage] 投稿日:04/09/26 16:43:43
>>343
サンプルくらいDLしる
http://www.dp.j-phone.com/dp/tool_dl/java/emu.php
あと、JSCL1.2に関する書籍は聞いたことがないな。
どうせ消えるらしいし今後も出ないと見た。

345 名前:322 [sage] 投稿日:04/09/26 17:02:46
>>344
このサンプル前ダウンロードしたけどエラーで動かなかったから諦めてたんだけど
今動かしたら動いた(´д`;)
ちょっくら分解してきます…。

346 名前:デフォルトの名無しさん [] 投稿日:04/09/26 17:25:06
質問ですみませんが
前スレ36氏の発言KJXカッター
ezplusの実行形式KJXファイルを簡単にJADファイルとJARファイルに戻せる

jarはzipと同じなので、適当なツールで伸張

Java逆コンパイラ(沢山あるからググれ)にかける
と書いてあり逆コンパイラしたファイルのバグを修正してコンパイラすると
エラーが必ず出ます。
インターフェイスファイルが無いなどで
まぁ一回無視してclassファイル(12個)や画像ファイルをzip圧縮して
kjx結合君で無理やりkjxにしたのですが起動できませんでした
しかも通信機能がついているのに通信が無効になってしまいました
何か解決方法は無いでしょうか?

347 名前:デフォルトの名無しさん [sage] 投稿日:04/09/26 21:34:06
Vアプリ作成中で、レコードストアにデータをaddしたりsetして、
それをgetRecordして表示させようとしているのですが、
どうもうまく表示できません。

どの過程をしくじっているのかなかなか把握できないのですが、
Vエミュ(P4型)ではレコードストアの状況とかみれないのでしょうか?

あと、setRecordを使うことで、特定のIDに新規書き込みすることは不可能なのでしょうか?


348 名前:デフォルトの名無しさん [sage] 投稿日:04/09/26 23:04:42
>346
逆コンパイルした*そのままの*ソースはコンパイル通る?
通らなかったらその逆コンパイラが腐ってる可能性があるから別のを探そう。

起動できないetc.はそれを確認・対処してから考えましょう。
通信が無効ってのは……kjx作るとき元のと同じMANIFEST.MF使ってる?

349 名前:347 [sage] 投稿日:04/09/26 23:28:42
エラーを画面に表示させて、細かくステップごとに見ていくと、
どうやらOPEN時点ですで引っかかっていたみたいです。
で、いろいろ検討して、レコードストア処理をしているサンプル探してきて
実行すると、ちゃんとしているものなら *.rmsというデータができること
を発見し、そこから調べていった結果。MANIFESTと.jadの問題だったようです。

MIDlet-data-sizeは登録しておいたと思ったんだけど、、動いてるものから
コピペして書き換えたら処理できるようになりました。
setも既出のものしかできないこともわかりましたので・・・
お騒がせしました。

350 名前:デフォルトの名無しさん [] 投稿日:04/09/26 23:51:49
>>348
逆コンパイラはDJ Java Decompilerで逆コンパイラしたファイルを
そのままコンパイラしようとすると
「シンボルを解釈処理できない」
と出ます。
一度.classを読み取り.javaにしたファイルをそのまま.classに戻す時点で
このエラーが出ます。
また他の.classを読み取り.javaにしてまた.classに戻そうとすると
「このファイル名はpulicです宣言ファイル名.javaで宣言しなければなりません」
と出てしまいます
やはり逆コンパイラが腐っているのでしょうか
MANIFEST.MFは同じものを使っていますMETA-INFというファイルに納めてあります

351 名前:デフォルトの名無しさん [sage] 投稿日:04/09/26 23:54:01
連レスすみませんsageをずっと忘れてました
あとMANメッセンジャーでご指導して頂ける方は指導希望と書いてくれませんか?

352 名前:デフォルトの名無しさん [sage] 投稿日:04/09/26 23:56:35
>350

とりあえず逆コンパイラをjadに変えてやってみましょ。
ttp://kpdus.tripod.com/jad.html

353 名前:デフォルトの名無しさん [sage] 投稿日:04/09/27 11:32:43
>>351
甘 え る な

354 名前:デフォルトの名無しさん [] 投稿日:04/09/27 14:09:58
Vアプリで質問します。
J2ME Wirless Toolkit でビルドを行ったのですが、
com.j_phone.* は存在しません。と出てしまいます。
com.j_phone一式がインストールされてないということと思いますが、
その入手先と、設定方法を調べていますが、どうもみつかりません。
教えていただけますと助かります。

355 名前:デフォルトの名無しさん [] 投稿日:04/09/27 14:11:41
354です。補足します。
J2ME Wirless Toolkitのバージョンは、1.0.4です。
VアプリのP5型の開発をしております。

356 名前:デフォルトの名無しさん [] 投稿日:04/09/27 14:33:55
JSCLが足りないのかな?

357 名前:デフォルトの名無しさん [] 投稿日:04/09/27 14:57:21
354です。
ttp://java.cocolog-nifty.com/blog/2004/03/
を読んで、JSCLのインストールを
試してみたところ、次のようなエラーが出てしまいました。
----------------------
ERROR: native methods should not appear

Error preverifying class com.jblend.graphics.j3d.ActionTable

com.sun.kvem.ktools.ExecutionException: Preverifier returned 1

Build failed
----------------------
意味がよく分からないのですが、ネイティブメソッドを使ってはいけない。
と出ているようです。ネイティブメソッドは使用していないのですが、
何故こうなるのでしょうか?

358 名前:デフォルトの名無しさん [sage] 投稿日:04/09/27 15:27:17
>>346
自分じゃアプリ作れないけど改造だけなら出来そうとか思ってるんだろうな・・。
そもそも逆コンパイル自体グレー的(おそらく他人のアプリだとして)な行為なのに、
コンパイル等の仕組みを良くわからないまま手を出して「腐ってる」は無いだろ。
「シンボルを〜」とか「〜で宣言しなければ」なんて超基本的なことで、
少し自分でソースチェックすれば解決できそうなもんだけどな・・。

たぶんそのアプリの作者がサイズ削減かコード閲覧回避のためオブファスケータ使ってて、
その時ファイル名と異なるクラス名が付いたから、とかじゃないかとか思うけど。
まぁ逆コンしたものであるかは別にして、ソースがコンパイルできるかどうかの問題だから
ソースとBuild設定さえ見れたらアドバイスできるが、他人のなら無理だな。
とりあえずアップできるソースならアップして、他作なら許可もらうか直接聞いたら?

359 名前:デフォルトの名無しさん [] 投稿日:04/09/27 15:40:19
Vアプリで、
JConnector.class を入手したのはいいのですが、
どこに置けば良いのでしょうか?
分かる方いらっしゃいますか?

360 名前:デフォルトの名無しさん [sage] 投稿日:04/09/27 16:20:06
>>359
JConnector.classってなんだ?

361 名前:346 [sage] 投稿日:04/09/27 18:20:41
>>358
確かにおっしゃる通りです。
一応eclipseで逆コンパイラしてソースを見てみると
たくさんエラーが表示されますね
おそらくコード観覧回避目的だと思います。
企業のアプリなんでアップや直接聞くことはできませんが
一からJAVAを勉強し直して自分でコンパイラできるようになり
アプリを制作できるようになりましたらまた挑戦してみます。
>>353
甘えもありますが、板をあまり質問で汚したくなかったので
そのような書込みをしました。

362 名前:デフォルトの名無しさん [] 投稿日:04/09/27 21:02:05
みなさんに質問させてください。

今、純MIDP2.0 のみ( VやAUのクラスを使用しない )でアプリを作っています。
で、今行き詰まっているのは
ランチャーのように『アプリA』 から 『アプリB』や『アプリC』 を呼ぶことは可能か?
という事についてです。
別スレッドということではなく、あくまで別アプリを呼ぶという事で。

他のアプリを呼ぶ事自体が非常識なんでしょうか?
セキュリティ上ダメかな・・・と、少し諦めてはいるのですが
可能ならば容量制限などを気にせず作れるかな〜と思っています。

『そんなの普通にやってるコトだよ!』とか『できるワケね〜だろ!』といった
内容でもよろしいので、ご意見下さい。

363 名前:デフォルトの名無しさん [sage] 投稿日:04/09/27 21:11:44
>>362
アプリAに終了命令出して、アプリBとかCに開始命令出せればいけるかも
でもレコードストアのデータとかは引き継げないから結構使いにくいかもね。

364 名前:デフォルトの名無しさん [sage] 投稿日:04/09/27 21:32:42
>>362
MANIFST.MFにMIDlet-1, MIDlet-2とか書いて、
1つのjarの中に複数のMIDlet詰めることはできたと思う。
そういうアプリの場合、起動時に詰め込んである複数のMIDletから(ユーザが)アプリを選んで起動できる。

レコードストアを共有できるかどうかはシラネ。MIDPのドキュメント読んで。たぶんできると思うけど。
でも、今のケータイ向けのアプリでは一般的には使われてないっぽいけど。

365 名前:362 [] 投稿日:04/09/27 22:06:42
早速のレスありがとうございます!

>>363さん
別アプリって認識できるのかな?
でも、やってみますね!


>>364さん
大変勉強になります。
1つのjarに複数のアプリが入れられるとは思いませんでした。
レコードストアに関しては、早速、印刷して読み込んでみます。

>でも、今のケータイ向けのアプリでは一般的には使われてないっぽいけど。
通信速度もメモリも拡大している最近では、複数に分けてみようってのは
イマイチな考え方なんですかね・・・(泣

やはり別jarパッケージの起動は無理っぽいのかな〜。
やれる事は全部やってみて、引き続きがんがってみます。

みなさん、ありがとうございます。

366 名前:なっち(○´ー`○) [sage] 投稿日:04/09/27 23:40:26
MIDP2.0ではMIDletスウィートは
廃止されたような気がしたけどどうかな。

367 名前:デフォルトの名無しさん [sage] 投稿日:04/09/28 02:14:54
MIDP2.0でも MIDlet Suiteはありますよ。

MIDlet Suite内のMIDlet間の連携は無理です。
選択画面を経由した手動の切り替えのみ可能。
ってのが建前。

それからレコードストアは共有できる。はず。


368 名前:デフォルトの名無しさん [sage] 投稿日:04/09/28 11:09:46
レコードストアは、JARに対応して設けられるので、
MIDlet Suite 中で同じレコードストア名を使用すると、同じデータを参照できます。

アプリケーション間連携がないのは、セキュリティリスクの低減と、
設計モデルの問題ですね。

369 名前:デフォルトの名無しさん [sage] 投稿日:04/09/28 13:23:41
レコードストア関連であった話しなんだけど、
一つのレコードに複数のデータを設けて、split出区切る方式を
考えて、やってみたんですけども、

メソッド split(char) は型 String で未定義です。

でコンパイルが通らないです。j2sdk1.4.2_02です。
split使えないなんて事はないと思うんだけど、、
ご教授いただけますでしょうか・・

try{
rs = RecordStore.openRecordStore("frends",true);
byte[] b=rs.getRecord(1);
String rec =new String(b);
rs.closeRecordStore();
String nlist[ ]= new String[1];
nlist = rec.split("|");
}catch (RecordStoreException e){
feno =9999;
fname = "ERROR;";
}

370 名前:369 [sage] 投稿日:04/09/28 14:50:28
今は
メソッド split(String) は型 String で未定義です
になってますね。さっきはパラメータに'|'を送ろうとしてたので、
Charだったみたいです。

371 名前:デフォルトの名無しさん [sage] 投稿日:04/09/28 14:57:14
>>369
そのエラーメッセージの通り。
Stringクラスにsplit()というメソッドはない。

372 名前:デフォルトの名無しさん [sage] 投稿日:04/09/28 18:39:19
J2ME Wireless Toolkitを使ってビルド→パッケージやってるんですけど
パッケージ化するたびにメモ帳でJAD開いてにMIDlet-Networkを追加するのが面倒です
この作業をしないで済む方法ってないですか?

373 名前:デフォルトの名無しさん [sage] 投稿日:04/09/28 19:52:09
>>372
俺はWireless Toolkit使わずにバッチファイルでパッケージしてる。

374 名前:デフォルトの名無しさん [sage] 投稿日:04/09/28 20:13:37
オススメ
ttp://www.wakhok.ac.jp/~oota/vappli/

375 名前:デフォルトの名無しさん [sage] 投稿日:04/09/28 20:28:58
>>372
パッケージ化のたびに項目消える方がヘン。
マニフェストファイルの方に書いてないってオチでは。

376 名前:372 [sage] 投稿日:04/09/28 20:32:33
案外マニフェストファイルに書いておけばパッケージ化の時にjadに自動的に書き込まれたりするってことだったりします?
初心なこと聞いちまったぽい。

377 名前:デフォルトの名無しさん [sage] 投稿日:04/09/29 01:52:33
質問です

現在、JPG画像を表示させるP5向けのアプリを作っています
しかしImage.createImateして、drawImageで表示させても何故か減色されてしまいます。
アプリでは256色までしか扱えないのでしょうか?
それともJPGはの表示は特別な方法があるのでしょうか?

教えて下さい
よろしくお願いします。

378 名前:デフォルトの名無しさん [sage] 投稿日:04/09/29 11:15:01
>>377
アプリは何で実行してるの?実機?エミュレータ?
256色の制限なんてあったっけ?


379 名前:377 [sage] 投稿日:04/09/29 13:25:50
すいません、すこし説明不足でした
P5用のVアプリエミュで実行してます。
256色で制限されてるのかはよく分からないのですが、256色に落として保存した画像みたいに年輪みたいになって表示されてしまいます。

380 名前:デフォルトの名無しさん [sage] 投稿日:04/09/29 17:14:22
DOJAでも、
そんな感じに表示されるけど、実機では問題なし。

381 名前:377 [sage] 投稿日:04/09/29 17:19:18
380
実機で試してみますね。
ありがとうございました。

382 名前:377 [sage] 投稿日:04/09/29 21:47:45
実機で試してみると、年輪のような表示にはなりませんでした。

それは解決したのですが、また問題が出たので質問です。
エミュでは展開出来たのですが、実機では40k以上の画像等のファイルはエラーが出て表示が出来ませんでした。
テストには602SHを使っていて、601SHならPNGの展開サイズが最高で512kまでと書いてあったのでいけると思うのですが…。

それと、MIDlet-OCLをJSCL-1.2.2に設定しておくと602SH/601TのP6型以外で起動不可になりますか?

質問ばかりで申し訳ないのですが、よろしくお願いします。

383 名前:デフォルトの名無しさん [sage] 投稿日:04/09/29 22:19:33
エラーの内容が分からんのでとりあえずその例外を描画してみては?
catch(Exception e){

while(DeviceControl.getDeviceState(DeviceControl.KEY_STATE) > 0) //キー入力があるまで無限ループ

384 名前:デフォルトの名無しさん [sage] 投稿日:04/09/29 22:22:33
ごめん、途中で書き込んじゃった
catch(Exception e){
Graphics.setColor(0,0,0);
Graphics.fillRect(0,0,240,240);
Graphics.setColor(255,255,255);
Graphics.drawString(""+e.toString());
while(DeviceControl.getDeviceState(DeviceControl.KEY_STATE) > 0) //キー入力があるまで無限ループ
}


385 名前:デフォルトの名無しさん [sage] 投稿日:04/09/29 22:25:32
drawStringの引数Stringだけになってた(汗
x,y,アンカーを脳内で入れといてください。

それと追記
例外とかの文だと長すぎてはみ出す可能性が高いんで
20文字目ぐらいでString#substring()使って文字列を区切って描画したほうがいい。

386 名前:デフォルトの名無しさん [sage] 投稿日:04/09/29 22:41:19
エラーの内容表示しないでも、それってサイズ制限に引っかかってるだけじゃないか?
確か40KBより大きいファイルは扱えなかったような気がする。

387 名前:デフォルトの名無しさん [sage] 投稿日:04/09/29 22:43:35
386追記
40KBより大きい画像とかのファイルをSD経由で読み込んでみ?
エラーで表示されない

勘違いだったらスマソ

388 名前:デフォルトの名無しさん [sage] 投稿日:04/09/29 23:02:08
ttp://appget.com/vf/pc/apview_021014.htm
このアプリで40kb+の着メロ再生できるから開く方法はあるっぽいな。

389 名前:382 [sage] 投稿日:04/09/29 23:12:21
皆さんありがとうございます。

>>383-385
コード追加してみましたが、getDeviceState(int)をstaticコンテキストから参照することはできません。
と出てビルド出来ません…。
すんません、自力じゃ分かりませんでした…。

>>386-387
SDカードにアプリで読み込もうとしていたファイルを入れて開こうとしたところ、「40Kを超えるファイルのため再生できません」と出ました。
40K以上の着メロも同様のエラーで無理みたいです。

390 名前:デフォルトの名無しさん [sage] 投稿日:04/09/30 03:34:03
>>389
どんなAPIで40KB超えのファイルを開こうとしてる?

StorageConnection#openInputStream()
でなら、40KB制限なんて引っかからないと思う。

FileUtility
は使ったことないのでシラネ、
FileUtility#play
は、「ネイティブアプリケーションで再生します」とか書いてるから、
ネイティブの制限(SHなら40KB/Tなら64KB)の制限を受けるんじゃないかな。

391 名前:デフォルトの名無しさん [sage] 投稿日:04/09/30 15:38:50
>>389
ちゃんと調べた訳じゃないけどStorageConnection#openInputStream()の仕様で制限掛かってるならエミュでも開けないと思うし、
何か機種独自の仕様かなにかに引っかかってるんじゃないかな
それ以外のAPIは使ったことないし知らん

ちなみに漏れの602SHでもStorageConnection#openInputStream()で画像読み込んだら例外出て開けんかった。
もしかしたら
ttp://potter.s5.xrea.com/vappli/doc/P5/com/jblend/media/jpeg/JpegData.html
もしくはttp://potter.s5.xrea.com/vappli/doc/P5/com/jblend/media/png/PngData.html
これ使えば開けるかもピープ限界まで開けるかも

漏れの考えも間違ってるかもしれないから分かる人よろ

392 名前:391 [sage] 投稿日:04/09/30 15:42:34
訂正

JpegPlayerとかはttp://potter.s5.xrea.com/vappli/doc/P5/com/jblend/media/MediaImageOperator.html
このMediaImageOperatorってので使うぽい
間違ってたらすまそ

393 名前:382 [sage] 投稿日:04/09/30 18:54:42
遅くなりました、すいません。

>>390
ファイルの取得はボーダのサンプルを流用してやってます
まず、byte[] data=read(ImgURL+".png")で呼び出して
(長いので必要そうな所だけ。)
conn = (StorageConnection)Connector.open(url);
InputStream is = null;
ByteArrayOutputStream baos = null;
try {
baos = new ByteArrayOutputStream();
is = conn.openInputStream();
byte[] buff = new byte[(int)conn.getLength()];
int readed = -1;
while ( (readed = is.read( buff )) != -1 ) {
baos.write( buff, 0, readed );
return buff;
}
}
…catch/finallyなどが続く
最後のreturnでbuffの中身を呼び出し元に戻して、viewImg=Image.createImage(data,0,data.length)で画像にしてます。
多分これでいけてると思うのですが…ここに問題無ければ他の部分かな…。

>391
棒打のサンプル見てみますね。

394 名前:デフォルトの名無しさん [sage] 投稿日:04/09/30 21:01:53
画像サイズがデカイと無理です、多分。
ヒープの問題。

395 名前:デフォルトの名無しさん [sage] 投稿日:04/09/30 21:20:02
>>382
参考までに聞きたいが、
このソースで実機で40KBより小さいサイズの画像は問題なく読めてるの?

396 名前:382 [sage] 投稿日:04/09/30 22:02:46
読めてます。

397 名前:デフォルトの名無しさん [sage] 投稿日:04/09/30 23:05:13
>>394
ピープは1200kぐらいあるはずだからよほど大きくない限り読めるはずだろ

398 名前:デフォルトの名無しさん [sage] 投稿日:04/09/30 23:12:19
480x640程度でダメなはず。
エミュ確認のみ。

399 名前:デフォルトの名無しさん [sage] 投稿日:04/09/30 23:20:10
画面カラーが32bitだと、32bitに展開されるとかじゃない?

400 名前:デフォルトの名無しさん [sage] 投稿日:04/09/30 23:22:10
32bitビットマップね。

401 名前:382 [sage] 投稿日:04/09/30 23:38:43
>>398
240x320のPNGファイルで、エミュでは問題無く表示されています。

>>399
画面カラーというのは、携帯実機の?PCの?

402 名前:デフォルトの名無しさん [sage] 投稿日:04/10/01 00:25:00
Imageの画素の深度は機種依存のハズ。元画像のサイズ・深度はあんま関係ないぽ。
240×320がOKだったとかいわずに、Image作成前と作成後でヒープ残量はかってみ。
 long memory = Runtime.getRuntime().freeMemory();
他キャリアで悪いがPhase3エミュでcreateImage(100,100)で20KB程度、
つまり1画素あたり2B使ってる計算。これでいくとヒープ2MBの機種で100万画素まで、
大体QVGA(320×240≒8万)の10倍程度が限界。もちろん画像のみの話だけど。
そのJPGがそれ(QVGA×10)を超えてないか確認してみそ。深度深けりゃもっと小さいが。

403 名前:382 [sage] 投稿日:04/10/01 01:02:06
>>402
計算ニガテだけどがんばって計算してみますね…。
ちなみに表示させようとしてるのはPNG形式の画像です

404 名前:デフォルトの名無しさん [sage] 投稿日:04/10/01 01:53:02
ちょい質問。
byte型のデータをint型に変換するのってどうすりゃいいの?
直接代入しただけじゃあたりまえだが無理だった(´д`;)

405 名前:390 [sage] 投稿日:04/10/01 02:11:41
念押しときますが、V601TでStorageConnection#openInputStream()で制限引っかかることはなかったです。
少なくとも500KB超えたファイルもいけてる。

やっぱ、Image作るところかbyte確保するとこ(byte[] buff = new byte[(int)conn.getLength()];)で
ヒープ不足で引っかかってる気がするんだが。

いずれにしても、どこでどんな例外が出てるかを確認するのが先決だと思う。

>>404
直接代入できますが。

406 名前:デフォルトの名無しさん [sage] 投稿日:04/10/01 02:33:17
むむむー
直接代入しようとすると互換性のない型って出てビルド出来ん
んで、検出値がbyte[]で期待値がintになってる
解釈違いかなあ

407 名前:デフォルトの名無しさん [sage] 投稿日:04/10/01 02:53:44
>>406
配列じゃない変数に配列が代入できるわけないだろ
どういうことがやりたいんだ?

408 名前:デフォルトの名無しさん [sage] 投稿日:04/10/01 03:09:07
フェーズプレイヤーで再生するデータを外部メモリから読んで、再生させたい。
393のソース流用したんだけど、int spfdata = read("file:///mc/spf/sound.spf");
ってすると「互換性のない型」ってエラーが出る。
さてどうしたものか…。

409 名前:デフォルトの名無しさん [sage] 投稿日:04/10/01 03:25:25
>>408
>>393のソースを参考にread()ってメソッド作ったんなら戻り値はbyte[]型でしょ。
(byte[] buff = new byte[〜]; で return buff; なんだから)
それをint型で受ければエラーは当たり前。byte[]型の変数で受けなきゃ。

410 名前:デフォルトの名無しさん [sage] 投稿日:04/10/01 03:36:03
んーむ…
こんなソースになったけど駄目っぽい…。
2箇所エラーがあるみたいです
すいません、よろしければおかしい所の修正お願いします。。。

player=PhrasePlayer.getPlayer();
byte[] spfdata;
spfdata = read("file:///mc/spf/sound.spf");
int spffile = spfdata;     //ここで「互換性のない型」エラー
data=new Phrase(spffile);   //ここで「シンボルを解決できません」エラー
track0=player.getTrack();
track0.setPhrase(data);
track0.play();

411 名前:デフォルトの名無しさん [sage] 投稿日:04/10/01 05:31:06
>>410
>int spffile = spfdata;
だから、なんでbyte[]型をint型に代入しようとするのさ。

しかもPhraseのコンストラクタでint型を引数に取るものはない。
無意味な int spffile = spfdata; を書かずにspfdataを引数にすればいい。

412 名前:382 [sage] 投稿日:04/10/01 16:03:13
読み込みエラー、なんとか解決しました本当にありがとうございます

413 名前:デフォルトの名無しさん [sage] 投稿日:04/10/01 16:45:05
>>411
遅くなった。
どっかでint型のデータを引数として渡せとか書いてあったのが頭の端っこにあったからかなり勘違いしてたっぽい。
spfdataを直接渡してやればちゃんと再生できました。

ところで、2種類の音を再生して、片方の音だけループするようにしたいのだけど
ループの処理は常に再生されるか確認して停止してたらまた再生させる って処理でいいのかな?

414 名前:デフォルトの名無しさん [sage] 投稿日:04/10/01 18:39:34
>>412
「なんとか」じゃなく、何が原因だったか知りたいぞ!

415 名前:382 [sage] 投稿日:04/10/01 21:40:43
ピープオーバーが原因でした。
残量は表示させてたのですが取得する場所が悪かったみたいでちゃんと計れていないのが原因でした。


416 名前:デフォルトの名無しさん [sage] 投稿日:04/10/01 22:37:27
すごく気になるんだが
「ピープ」って……なに?

417 名前:デフォルトの名無しさん [sage] 投稿日:04/10/01 23:13:07
ピープ…とも読めるな。

ところで、配列にデータが入ってる場合だけ処理したいんだけどデータが入ってるか調べるのってどうするの?
if(str[0] != null)
で合ってるのかな?

418 名前:デフォルトの名無しさん [sage] 投稿日:04/10/01 23:19:48
>417
「配列にデータが入っている」という意味がいまいちよく分からんな。
String[] strについて、そもそもstrがnullなのか、
strの要素が1個以上はあるけどその要素がnullなのか。どっちかいな。

String[] str = null; // この時点では前者
str = new String[3]; // この時点では後者

419 名前:417 [sage] 投稿日:04/10/01 23:26:41
分かりにくくてごめん
配列にjar内のテキストを読みこませてるんだけど、中身の無いテキストと中身があるテキストで処理を振り分けたい。

かなり分かりにくいな・・・・

420 名前:デフォルトの名無しさん [sage] 投稿日:04/10/02 00:02:50
>>418
String[] str = new String[100]; とかしただけなら str[0]〜str[99] == null;
そこに byte[] b = 〜 ; str[ 0 ] = new String ( b ); とすると str[ 0 ] != null だわな。
こういう感じならif( str[0] != null ) 〜 とすればいいんじゃない?
str[0]=new String( new byte[0] ) の場合も !=null ( str[0].equals("")==true )になるよ。

自分の場合、配列初期化直後 for(i=0;i<str.length;i++)str[i]="";
でそれぞれの要素も初期化して if(str[i].equals("") ) 〜 とかやっちゃう。

結局、未初期化(=null)かそうでないか、空の文字列(="")かそうでないか、
どっちの判定をやりたいのかを明確にした方が吉。
別に if( str[0]!=null && str[0]!="")〜 でもできなくは無いと思うが。

421 名前:417 [sage] 投稿日:04/10/02 00:07:13
ようするに初期化してない配列は(=null)で
空の文字列とか入れて初期化すると(="")ってことかな…

だとすると空の場合実行するってのは
if (str[i].equals("") ) {
処理
}
でいいの?

422 名前:デフォルトの名無しさん [sage] 投稿日:04/10/02 01:37:10
>>421
空文字("")とnullは別物だぞ。

String[] str; // この時点ではstrはnull
str = new String[10]; // この時点でstrは実体あり、str[0]-str[9]はnull
for(int i=9; i>=0; i--){
str[i]=""; // ここでstr[0]-str[9]はnullでなく""(0個の文字からなる文字列)を指す
}

""に特別な意味を持たせるのかnullに特別な意味を持たせるのかは、
アンタのアプリの中身次第。

423 名前:417 [sage] 投稿日:04/10/02 02:16:02
なる。
ちなみに421に書いたやり方で解決できました。
かなりさんきゅうべりーまっち

424 名前:デフォルトの名無しさん [sage] 投稿日:04/10/03 16:01:15
ezアプリって>>2のツールでしかビルドできんのですか?

425 名前:デフォルトの名無しさん [sage] 投稿日:04/10/03 16:31:20
>2の公開ツールに入ってるコマンドラインツールは必須だけど
それらをバッチファイルなりMakefileなりbuild.xmlから呼び出して使うことは普通に出来る。
実際、公式のビルドツールにも、ビルド手順をバッチファイルへ書き出すコマンドあるし。

426 名前:デフォルトの名無しさん [sage] 投稿日:04/10/03 20:54:06
>>424 Sun以外にもコンパイラやライブラリ売っているメーカー
あるから、別にSunのじゃなきゃ駄目というわけでもないよ。

427 名前:デフォルトの名無しさん [age] 投稿日:04/10/03 23:27:36
質問です

4M程度のテキストファイルを一行ずつ読み込ませるにはどのようにすればいいのでしょうか?
一旦ファイルを読み込んで配列データにしてからなら一行ずつ表示させることは出来るのですが、ファイルから直接一行ずつ読み込むのが出来ません。

そもそもそのようなことが可能なのでしょうか?

428 名前:デフォルトの名無しさん [sage] 投稿日:04/10/04 00:04:35
>>427
1バイトずつ読んで改行文字のところで自分で区切る。

429 名前:427 [] 投稿日:04/10/04 00:13:31
すいません、改行文字って \n しか知らないのですが…。
具体的にどのような処理にすればいいのでしょうか?

初歩的なこと聞いてすいません。

430 名前:デフォルトの名無しさん [sage] 投稿日:04/10/04 02:10:31
>>429
\nならバイト値で10のハズ。
try{
InputStream is=getClass().getResourceAsStream("/data.txt");
ByteArrayOutputStream os=new ByteArrayOutputStream();
String[] str=new String[1000];
int line=0;
int data=data = is.read();
while (data != -1){
 os.write(data);
 if(data==10){
  str[line++]=new String( os.toByteArray() );
  os=new ByteArrayOutputStream();
 }
 data = is.read();
}
is.close();os.close();
}catch(Exception e){}
でいいと思うけど。String配列を可変長にするにはVectorでもつかえば・・。
厳密にはWindowsの改行は\r\nで13,10だけど\rが残ってもたぶん大丈夫。
というか4Mのテキストってドコに存在できるわけ?そういう意味では不可能だと思う。

431 名前:デフォルトの名無しさん [sage] 投稿日:04/10/04 23:11:49
致命的エラー: クラスパスまたはブートクラスパスでパッケージ java.lang を検出できません。

と出るんですけど、何の設定が間違ってるんでしょうか?

432 名前:デフォルトの名無しさん [sage] 投稿日:04/10/04 23:14:42
>431
書いて有る通り
「クラスパスまたはブートクラスパス」
の指定が間違っとるのと違う?

433 名前:デフォルトの名無しさん [sage] 投稿日:04/10/04 23:36:47
テキストビューア作ってるオレがアドバイスすると、
4MBのテキスト全部はヒープに収まらない。内部データ構造にもよるが500KBあたりが限度(V601T/V602SH)
どうしても読みたいなら、メモリに全展開しない方式を考えた方がいい。
もちろんSDカードか本体のデータフォルダから読み込む。

あと、Javaは内部処理がすべてUnicode(たぶんUTF-16)なので、
文字コードとバイト数の違いに注意。
ちなみに、ケータイのプラットフォームはMS932でなくSJISっぽい。
絵文字はどうなるのか知らん。


>>430
ByteArrayOutputStream使ってないので何ともいえんが、
一文字ずつ処理するとたぶん読み込みが激しく遅くなると思う。
自前バッファでの環境だと、8192byteごとに処理するとエミュ・実機とも一番読み込みが早かった。
実装により多少前後すると思うが、1K-10Kくらいをまとめて処理した方が早くなると思う。

あと、読み込み中(ストリーム開いてる途中)にOutOfMemoryErrorがでると、
StorageConnectionが使い物にならなくなってしまうという現象に悩んでる。
ExceptionでなくErrorなのでどうにかなるもんではないという結論でいいんだろうか。。


つーことで、>427 ガンガレ

434 名前:427 [sage] 投稿日:04/10/05 01:04:58
>>430
ソースまで書いていただいてありがとうです。
ちなみに4MのテキストファイルはSDカードに入れてます。

>>433
500KB程度で限界ですか…ピープ制限って結構厳しいですね。
全展開せずに開くとゆうことは、
例えば開こうとしてるファイルが100バイトだとすると、
50バイトから100バイトの範囲を読み込む、みたいな処理にすればいいのでしょうか?


えと、それで、悪いのですがもう一つ質問です。

外部(SDメモリとか)に保存したJARファイルからリソースが読み込めると聞いたのですが、可能でしょうか?
それなら、JARファイルはZIPと同じ圧縮だと聞いたのでZIPで圧縮して拡張子をJARに変えて使えばPCからファイルを送るときに楽な感じなのですが・・・。

435 名前:433 [sage] 投稿日:04/10/05 02:50:56
>>434
> 50バイトから100バイトの範囲を読み込む
改行で折り返すんだから、たとえば1画面に収まるバイト数は一定でない。
だから、メモリに展開せず必要になったときに常時読み込むような処理を書くのはめんどい。

> 外部(SDメモリとか)に保存したJARファイルからリソースが読み込める
拡張子とかファイルの中身に制限はないので、(厳密にはjpz/pnzとかSD書き出し時.hufの保護されたファイルは読めない)
ZIPだろうがjarだろうがlzhで独自解凍処理組み込もうが何でもかまわん。
何がやりたくてどう楽なのかは知らんが。
理論的には、外部ファイルを解釈するインタープリタ作れるかもな。NESエミュもその一種に該当するか。


ところで、質問ばっかでアンタがどこまで理解してどこまでできてて何をやりたいのがよくわからんのだが。
最初の質問 >427>430 ですべて解決してるし。
StreamTokenizerみたいなのが欲しいだけ?もちろんそんなものはJ2ME/MIDPにはないけど。

436 名前:430 [sage] 投稿日:04/10/05 09:38:51
あとでよく見ると\nも残っちゃってるな。まぁその辺は適当に・・。

>>433
なるほど。軽いファイルばかりでしかやってなかったので特に遅さは感じなかったけど
確かにある程度まとめたほうがよさそうですね。

僕は4Mでも全部開くつもりでソース書いてしもたけどやっぱ一部のみしか使えないよね。
じゃあ430のように1バイトずつ読んで\n探すより、例えば100KB分のバイト列読んで
その分を一度文字列化してindexOf("\n")、substringとか使って区切ったほうがいいかも。
その場合は行の途中から始まったり今何行目なのか分からなかったりだけど。
小説みたいに読めればいいならそれでもいいと思うが、きっちり行を意識するとすれば
例えば100B読んで途中で切れた行の先頭が95Bなら、つぎは95から100B読むとか。

437 名前:デフォルトの名無しさん [sage] 投稿日:04/10/05 15:03:09
vアプリってコンパイラはどこですか?
えみゅれーたしか見つかりません。

438 名前:デフォルトの名無しさん [sage] 投稿日:04/10/05 17:19:06
>437
コンパイラ自体はJ2SEのjavacでよろし。
ただし最新のを使っていけるかどうかわからんから
ボダの公式サイトをもう一辺よく読んでらっしゃい。

439 名前:417 [sage] 投稿日:04/10/05 21:26:03
あ、ごめんちょっと勘違いしてた。
436みたいな感じで100KB文のバイト列読んで〜 って感じでいってみます。
ZIPから読もうとしてたのはリソースファイルが結構な数あるのでカードに転送する時、一つのファイルだけ転送すればいいので楽になるかなと思ったからです

ちょいと色々試してみますね。

440 名前:デフォルトの名無しさん [] 投稿日:04/10/07 12:31:21
VappliをDLサーバーにアップロードしたのですが

ダウンロードHTMLの記述の仕方がイマイチよくわかりません

いいサンプルとかありましたら教えてください

441 名前:デフォルトの名無しさん [sage] 投稿日:04/10/07 16:11:20
おめでとうございます。440様あなた天然記念物・珍獣保護種に指定されました。
    by Vアプリ普及委員会

442 名前:デフォルトの名無しさん [sage] 投稿日:04/10/07 18:02:41
pashe3.0の拡張データストレージって"storage:"でアクセスできるのはわかったんだけど
iアプリのpos=みたいにopen位置を指定できないの?


443 名前:デフォルトの名無しさん [] 投稿日:04/10/07 18:31:29
Phraseプレイヤーで複数の音源を同時再生できるのは分かったんだけど、和音数少なくて使い物にならないので他ので試そうと思ったんですけど
他の音源での同時再生は不可能でしょうか?

444 名前:デフォルトの名無しさん [sage] 投稿日:04/10/07 18:42:24
携帯java環境でString配列のソートをおこないたいのですが、
Arraysクラスが使えないようで、他の方法を探っています。

みなさんは手作業でソートを行なっているのでしょうか?
つかっているクラス、メソッドがあれば教えてください。

445 名前:デフォルトの名無しさん [sage] 投稿日:04/10/07 19:13:39
>>440
VアプリはコンテンツアグリゲータのサーバでしかDLできませんので、
とりあえずアプリゲットとかその辺に作者登録して指示通りにやるべし。
そのDLサーバがそうだというなら話は別だけど、どうせ自サバかレンタルでしょ?

>>442
storageというかInputStream作るんだから
InputStream.read(byte[] b, int off, int len)
使ったら?

>>443
Phraseはmmfとpcmを合成して音源鳴らすんで、コレも単音源と言える気がする。
合成が必要な分、負担を減らすための和音数削減だと思うし。
解決にはならないでしょうけど、SmafPlayerとHVは同時に鳴らせたよ。

>>444
getBytes()とかでバイト列作って先頭から比較していく。そうすっと文字コード順に並ぶ。
入れ替えは String tmp=str[i]; str[i]=str[j]; str[j]=tmp; って感じの手作業。

446 名前:デフォルトの名無しさん [] 投稿日:04/10/07 23:54:35
あどれす家だって登録してます?
ttp://www.adyada.com/

447 名前:デフォルトの名無しさん [] 投稿日:04/10/09 01:41:04
RecordStoreを使ってゲームの途中データを保存させようとしていて、
セーブする際にレコードIDを指定してい保存したいのですが
もし1〜5までのレコードIDを使ったとして、1に保存されてないのに2に保存することは不可能でしょうか?


448 名前:デフォルトの名無しさん [sage] 投稿日:04/10/09 02:07:58
>>447
setRecordとaddRecordの違いをふまえよ。

449 名前:デフォルトの名無しさん [sage] 投稿日:04/10/09 13:57:11
>>447
レコードIDが指定出来るのはsetRecordだけだから既にあるIDしか指定出来ない
だから1に保存されてないのに2に保存は無理
IDが指定したいのなら、
起動時にレコードIDの5が存在するか調べて存在しない場合は空のデータをaddして5まで作成する
でもそうするとデータが存在することにはなってるから読み込んだときに何も保存されてない訳だからエラーになるだろうな
こんな感じに処理すれば指定は出来るけどどうやって処理するのかは知らん。

誰か追記してくれ

450 名前:デフォルトの名無しさん [sage] 投稿日:04/10/09 14:27:39
まず>>447が落ち着いて文章を書け。
どんな仮定で何を聞きたいのか意味不明。

451 名前:447 [sage] 投稿日:04/10/09 14:57:50
>>450
ユーザーがセーブした順番通りにデータを並べたいのです
言葉だと自分でも何言ってるのか分からないので自分なりに説明してみます

[セーブ1空]
[セーブ2空]←ここにユーザーがセーブする
[セーブ3空]
[セーブ4空]

これで、読み込む際に

[セーブ1空]
[セーブ2入]
[セーブ3空]
[セーブ4空]

このように表示させる為に、RecordIDで順番を整列しようと思ってるのです
分かりにくくてすいません。

452 名前:450 [sage] 投稿日:04/10/09 15:13:18
>>451
こんな処理手順でどうかな。
・アプリの初回起動時に保存データをnullとしたレコードを4つ生成する(IDの1〜4)。
・ユーザーの要求に従ってID1〜4の任意のレコードに保存する。
 (レコードはすでに4つ存在しているのでどれでも指定できる)
・画面に表示する際は、レコードID1〜4を順番に読み出していき、
 nullなら空、nullでないならデータありと判断して表示処理する。

453 名前:447 [sage] 投稿日:04/10/09 15:36:51
>>452
初回起動時かの判断ってどうすればいいでしょうか?
私が思いつく限りでは毎回、
起動時にRecordStoreを開いてtry文でID4を読み込みエラーをキャッチしたら1〜4にnullを書き込む方法ですが
この方法で大丈夫でしょうか

454 名前:デフォルトの名無しさん [sage] 投稿日:04/10/09 16:27:53
MIDPだけでキーの押されているとき、いないときの
判定をしたいのですがどうすればいいのですか?

455 名前:デフォルトの名無しさん [sage] 投稿日:04/10/09 16:44:05
>454
KeyPress用フラグとKeyRelease用フラグを用意して、
それぞれのイベントで立てたり倒したりする。
で、判定時にはそのフラグを見て処理。
が定石だと思うのですが如何か。

456 名前:447 [sage] 投稿日:04/10/09 19:05:24
if(getNumRecords()==0)で

String moziretu = null;
byte[] savdata = moziretu.getBytes();

と、してfor文かなにか使ってsavdataをaddRecordで4回書き込めばいいのかな・・・

457 名前:447 [sage] 投稿日:04/10/09 19:13:08
ごめん、追記です

String moziretu = null;
ではなく、
String[] moziretu = null;
と言う配列データです。

458 名前:450 [sage] 投稿日:04/10/09 21:57:45
>>447
レコードストアの有無を気にせずとりあえず読み込みモードでオープンする。
RecordStore rs = RecordStore.openRecordStore(〜, false);
rsがnullなら初回、nullでないなら2回目以降、と判断できる。

初回起動だと判断したらレコードストアを新規作成する。
以下は考え方なので、実際にはtry-catchとかやってくれ。

//レコードストアを新規作成モードでオープン
RecordStore rs = RecordStore.openRecordStore(〜, true);
//内容がnullのレコードを4つ作成する
for (int i = 0; i < 4; i++)
rs.addRecord(null, 0, 0);
//クローズ
rs.closeRecordStore();

この時点で空のレコード(保存内容がnullのレコード)が4つできてる。
>>452や上記の考えではレコードの内容がnullかどうかで"空"か"入"かの区別と
しているが、nullの代わりに「"空"を示すデータ」をrs.addRecord()のところで
保存しても構わない。やりやすいように変えてくれ。

459 名前:デフォルトの名無しさん [sage] 投稿日:04/10/09 22:58:55
>>447
ちょっと解決策というわけじゃないんだが、アイデアがあるなら一度やってみてはどう?
456や457を見る感じ、ある程度分かってるみたいだし、書けなくは無いと思うけど・・。
レスが来る前に結果出せると思うし、駄目だったらその時細かく聞けばいいと思うが・・。

個人的な考えかも知れんが「null」を使うのはあまりよくないと思う。
417〜423でも書いてたけど文字列なら「""」の方がいい気がする。
キッチリ if( str[ i ] == null ){ 無い時 } else { 有る時 } と毎回やればいいけど
ウッカリすると「ぬるぽ」が発生しかねない希ガス。
たとえば457を例にして
mojiretu[ 0 ] = null; → byte[] data = mojiretu[ 0 ].getBytes(); で「ぬるぽ」。
byte[] data = null; → addRecord( data , 0 ,data.length ); でも「ぬるぽ」。
となると
if( mojiretu[ i ] == null )rs.addRecord( null , 0 ,0 );
else { byte[] data=mojiretu[i].getBytes(); rs.addRecord(data.0,data.length);
みたいにする必要がある。
「""」なら読み書きは変える必要が無く、空入の区別が必要なときだけ
if( mojiretu[ i ].equals( "" ) ){ 無い時 }else{ 有る時 } でいい。

460 名前:447 [] 投稿日:04/10/09 23:58:40
すいません、自分なりにソース書いてみました
コンパイラとVアプリエミュで試してみるとちゃんと動きましたが、実際に保存出来ているのか謎なので
念の為意見お願いできますでしょうか?
catch{}はtry{}が実行出来なかった場合に実行するとゆう意味だと私は思っているので問題はないと思うのですが…。

try {
RecordStore rs = null;
RecordStore.openRecordStore("test",false);
if (rs == null) {
rs.closeRecordStore();
RecordStore.openRecordStore("test",true);
for (int r=0;r<6;r++) {
rs.addRecord(null,0,0);
}
rs.closeRecordStore();
} else {
rs.closeRecordStore();
}
} catch (Exception e) {}

testと言うレコードストアにIDを6まで作っています。

461 名前:450 [sage] 投稿日:04/10/10 00:08:53
447へのQ&Aとは直接関係ないカキコになるけど、一応フォローというか…

>>458の最後に書いたけど、>>459が示したようにnullを用いずに
空文("")をもって「データなし」とするやり方も、もちろん普通にありだ。
ただ、
>「null」を使うのはあまりよくないと思う。
からではない。これはアプリによる。

保存するデータがユーザー入力の文字列だったりする場合、もし空文("")
で初期化していると、そこが未使用のレコードなのか、ユーザーが何も
入力しなかった文章を保存したレコードなのか、区別が付かない。
そういうアプリではnullで初期化するとよい。
ここでもnullの代わりに適当な文字列をもって”空”の印にすることもできるが
ユーザーがその文字列を絶対に入力してこないという保障はないので、
その可能性を心配するくらいなら、やはりnullで初期化するのが妥当だろう。

>>447はどんなデータを保存するか質問内容からは分からなかったので
>>458の最後はあのような書き方をした。

また、「レコードのデータの初期値としてnullを使う」と自分で分かってて
決めていれば、自然とヌルポを意識したコードを書くから過度に警戒する
必要はない。というか慣れの問題。

462 名前:450 [sage] 投稿日:04/10/10 00:21:49
>RecordStore rs = null;
>RecordStore.openRecordStore("test",false);
オープンした戻り値をrsで受けなきゃ。

>if (rs == null) {
>rs.closeRecordStore();
rsがnullなのにrs.〜();とメソッド書いたら、これがヌルポだ!
ここでchatch(〜){〜}へ直行するハメに。

463 名前:447 [sage] 投稿日:04/10/10 01:37:36
直してみました。
初めに
int selectdata = 1;//これにユーザーが選んだ番号が入る
String[] data;//これに書き込む(読み込んだ)配列データが入る
を宣言してるものとします

// *初回に空レコードを作成する
try {
RecordStore rs = null;
rs = RecordStore.openRecordStore("test", false);
if (rs == null) {
rs.closeRecordStore();
rs = RecordStore.openRecordStore("test", true);
for (int r=0;r<6;r++) {
rs.addRecord(null, 0, 0);
}
rs.closeRecordStore();
} else {
rs.closeRecordStore();
}
} catch (RecordStoreException e) {}

// *セーブ
data[0] = "1個目のデータ";
data[1] = "2個目のデータ";
data[2] = "3個目のデータ";
try {
RecordStore rs = RecordStore.openRecordStore("test", false);//初回で既に作成されているのでfalse
byte[] b = data.getBytes();//dataをバイトに変換(合ってる?)
rs.setRecord(selectdata, b, 0, b.length);
rs.closeRecordStore();
} catch (RecordStoreException e) {}

464 名前:447 [sage] 投稿日:04/10/10 01:43:42
463続き

// *ロード
try {
RecordStore rs = RecordStore.openRecordStore("test", false);
byte[] b = rs.getRecord(selectdata);
data = new String(b);//バイトを配列に変換(変換方法分からず)
rs.closeRecordStore();
} catch (RecordStoreException e) {}

こんな感じで書いてみたのですがコンパイラが
byte[] b = data.getBytes();の部分でシンボルを解決出来ません
data = new String(b);で互換性のない型。
と言ってきます。
解決出来ませんのエラーは何故か分かりませんgetByte();ってのがあったはずですし…。
互換性のない型はどうやって配列に直すのかが分からないからです。

多分このエラー以外は間違い無しだと思うのですが…

465 名前:450 [sage] 投稿日:04/10/10 02:42:19
>>464
>byte[] b = data.getBytes();の部分でシンボルを解決出来ません

配列の要素を個別に扱わないと。
String[] data; としてるんだから byte[] b = data[0].getBytes(); などとなる。

ところで、ズラーッとソース貼るのもなんなので、テキスト形式のファイルで
どっかのアップローダに上げた方がいいかもしれんよ。

466 名前:450 [sage] 投稿日:04/10/10 02:44:30
String rsName = "test";
boolean existed = false;

//レコードストアの存在確認
try {
RecordStore rs = RecordStore.openRecordStore(rsName, false);
if (rs != null){
existed = true;
rs.closeRecordStore();
}
}
catch (Exception e){ existed = false; }

//レコードストアが存在しない場合→新規作成
if (!existed){
try {
RecordStore rs = RecordStore.openRecordStore(rsName, true);
for (int r = 0; r < 6; r++) rs.addRecord(null, 0, 0);
rs.closeRecordStore();
}
catch (Exception e){}

467 名前:447 [sage] 投稿日:04/10/10 16:55:43
>>450
次から長いの貼るときはアップロード使いますね。

ふむふむ、配列の要素個別に扱わないといけないんですね。
とゆうことは配列に3つの要素があるのでIDは今の3倍必要になりそうですね…。

レコードストアの初期化はこっちのほうが短くて綺麗ですね
if(!existed)ってのは初めてみたのですが「trueでなければ」てことですかね?

ソース書き直してみます

468 名前:デフォルトの名無しさん [sage] 投稿日:04/10/10 20:54:02
既出だったら申し訳ないが、Vアプリの開発情報色々増えてる。
P6エミュも出てる。

http://developers.vodafone.jp/dp/

2004/10/08 更新情報
Vアプリ開発ツール
 ・V-appli Emulator(P6型)Ver1.0
 ・V-appli Emulatorサンプルアプリ(P6型)
 ・ユーザーズガイド(P6型)
 ・Eclipse連携マニュアル
 を追加しました。

2004/10/01 更新情報
Vアプリ技術資料
 ・概要編 Ver.1.0.5
 ・開発編 Ver.1.0.3
 ・メディア編 Ver.1.0.2
 ・シリアル制御編 Ver.1.0.2
 ・Tips編 Ver.1.0.12
 ・Vアプリ端末情報 Ver.1.0.11
 を更新しました。
 ・新機能導入の手引き2004
  〜P6型端末編〜 Ver.1.0.5
 ・APIリファレンスJavadoc版(P6型)
 を追加しました。

469 名前:デフォルトの名無しさん [sage] 投稿日:04/10/10 23:30:49
一瞬MIDP2.0かと思ったら256k ver2でしたか。

470 名前:447 [] 投稿日:04/10/11 01:14:01
ソース書き換えてみたのですがコンパイラではエラー出ず、エミュで実行するとエラーは出ませんが表示させたい部分が表示されません。

ソースはこんな感じです
// *ロード
try {
RecordStore rs = RecordStore.openRecordStore(rsName, false);
for (r = 0; r < 5; r++) {
byte[] b = rs.getRecord(r+1);
if (b == null) {
rsDate1[r] = "ぬるぽ";
} else {
rsDate1[r] = new String(b);
}
}
rs.closeRecordStore();
} catch (Exception e) {}

for文使って1〜5のIDに入っているデータを読み出して、ifでbがnullの場合は"ぬるぽ"を代入してるのですが
drawString(rsDate[0],〜)で表示させても何も表示されません。

471 名前:450 [sage] 投稿日:04/10/11 01:47:36
配列b自身はnullにならない。ややこしい話は省略するが
if (b == null) を if (b.length == 0) として。

472 名前:450 [sage] 投稿日:04/10/11 02:18:47
すまん。混乱した。>>471は取り消し。

473 名前:447 [sage] 投稿日:04/10/11 02:44:05
>>450
いや、それで今の問題は直ったが。
でもまた次の問題が出てるわけだがな…。
自分で修正してみて手負えなかったら書き込みま

474 名前:450 [sage] 投稿日:04/10/11 03:07:39
自分が使ってるソースではやっぱ>>471のようにしてた。
>>472の書き込みはすみませんでした。

475 名前:デフォルトの名無しさん [sage] 投稿日:04/10/11 04:13:57
>>468
サンクス。
ITMediaあたりでニュースになってなかったから気づかんかった。
まぁ先がないJSCLですが。

476 名前:デフォルトの名無しさん [sage] 投稿日:04/10/11 08:32:08
>>470
その部分におかしな所はないと思う。表示できないなら表示部分を疑ってみて。
例えばrsData[0]がnullとか""の時がありうるのか、その時はdrawするのか、
単に背景色と同色で描画とか、画面外にdrawとか、後に上書きしてないか、とか。
コンストラクタの段階で適当な文字列 rsData[0] = "てきとー"; とかで表示を確認して
レコード読み取り後どう変わったのかを確認するといいと思う。
あと、エミュで実行するなら、tryでエラーが出てないかの確認のため
}catch(Exception e){ System.out.println( e.toString() ); } 
とかした方がいい。特にレコード関連はコード以外にもエラー原因があるし。

477 名前:447 [sage] 投稿日:04/10/11 13:14:21
>>476
e.toString()でエラー書き出したらrsDate1[0]に何も入ってないのが原因だった。
byte[] bなんで、if(b==null)じゃelseになってしまい、bに何も入ってないのにrsDate1[0]に代入して表示させてるからぬるぽ



ところで、open〜close内でgetRecord();を何度かに分けて使ってるんだけど、
2回目のgetRecord()でデータがちゃんと読み込めてないみたいなのですが
open〜closeを3回に分けて書くと正しく動きました。

もしかしてopen〜close内でgetRecord()は一回までって制限ある?

478 名前:476(459) [sage] 投稿日:04/10/11 19:21:32
>>447
だ〜か〜ら〜、e.toString()したらエラーの原因が分かるでしょや。
メッセージの意味が分からんならそれを調べるか聞くかしなっせ。
ソースが470+471のままなら(違うなら言ってね)、r=1の時何が起こってるか、
いっそ一行ごとにprintln使ってどの行まで行けてるか、ifでどちらに飛んでるか、
めんどうでも細かく調べてみることをオススメ。理解への近道。
やはりnullかどうかが面倒になってきそうだからもう一度459を奨めてみるテスト。
なんなら保存したいデータの変数が分かればsaveとroadメソッド書くよ。

あと細かいけど
・getRecord() なんてメソッドは無い。
・rsDate1て、日(date)は関係無いだろ。
・所々敬語を混ぜるくらいならいっそ全部普通語のほうがいいと思う。

479 名前:447 [sage] 投稿日:04/10/11 23:13:06
>>478
e.toString()でエラー書き出したらnullPointerExceptionになってたってことを書いたのですが・・・。
原因は空(null)のrsDate1[0]をdrawStringさせようとしたからです
これはif(b.length==0){}で空の場合は適当に文字列代入させることで解決出来ました

getRecord()はレコードストアの指定IDからバイトデータで読み込むやつ
確か、byte[] getRecord(int recordID)

rsDate1[0]はString rsDate1[]って配列データの要素で
date=日じゃなくてデータ=dataを間違ってdateにしてた。

480 名前:476 [sage] 投稿日:04/10/12 08:38:39
>>44
nullをdraw、int id、data、そんなことは分かってた。
今回の問題は
>getRecord()でデータがちゃんと読み込めてないみたいなの
でしょ?じゃあソコでe.toString()使おうとか思わなかったの?
使ってたけど何もメッセージが無いなら、一つだけ読んで終わるようにしてたんだろ。
ソース変わったなら言って、と書いたが何も無いってことはそのままか。
じゃあ470の最後のcatchでメッセージをださせてみて。

481 名前:447 [sage] 投稿日:04/10/12 13:24:01
>>480
すまんちょっと勘違い

getRecord()でデータがちゃんと読めてないと思ってたのは、
>>466のをID10まで作成するようにして使ってたのを途中で20変えたが既にレコードは存在するのでIDが追加されずに読み込もうとしたのがエラーの原因だった。

コンパイラもエラー吐かないしエミュでe.toString()使ってもNullPointerExceptionって出るしでgetRecord()でちゃんと読めてない物だと思ってた
けどそれは妄想でIDが追加されてないのが原因だったと・・・。

482 名前:デフォルトの名無しさん [sage] 投稿日:04/10/13 22:20:36
C4型、P4型では問題なく開発出来ていたのだが、
P5型のエミュが「fail prepareApplication」と出て動作せずに困っています。
ただ、サンプルの実行は出来るので実行ファイルを作成する段階でなにかミスを
していると思うのですが、C4、P4と手順が違うところってあるのでしょうか?


483 名前:482 [] 投稿日:04/10/14 01:50:11
MIDlet-Jar-URL:でスペルミスしてただけだった。 orz

484 名前:デフォルトの名無しさん [sage] 投稿日:04/10/14 15:12:05
byteデータを数値に変換して比較したいのですが、直接intにbyteを入れても互換性のない型と出てコンパイルに出来なくて困ってます
調べてみるとintValueで変換出来ると書いてあったので試してみたのですがシンボルを解決出来ませんと出てしまいます。
byteデータをintに変換するにはどうしたらいいのでしょうか?

485 名前:デフォルトの名無しさん [sage] 投稿日:04/10/14 15:39:24
すいません
byteデータではなく、byte[]でした
byte[] bytes;ってな感じに書いてますがint number = (int)bytesとしてもコンパイル出来ませんでした。

486 名前:デフォルトの名無しさん [sage] 投稿日:04/10/14 19:49:22
>byte[] bytes;ってな感じに書いてますがint number = (int)bytesとしても
>コンパイル出来ませんでした。

あたりまえです。こちらへどうぞ。
【初心者】Java質問・相談スレッド54【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1096548618/

487 名前:デフォルトの名無しさん [sage] 投稿日:04/10/14 22:51:41
配列だからな w
超初心者の俺でも分かるぜ (エッヘン w

488 名前:デフォルトの名無しさん [] 投稿日:04/10/15 12:11:20
質問なんですが、
Vアプリ開発ガイド[Tips編]によれば、SH系でネイティブ連係機能を使う際はkeyReleasedイベントでやれとのことですが、
ソフトキーによるcommandAction処理の場合はどうすればいいんでしょうか。。


TextBoxで気にせず素直にcommandActionでネイティブ呼び出すような処理を書いたら、
次同じソフトキーを押したときのイベントが起こりませんでした。
おそらくCanvasでkeyReleasedでやれと書いてあるのと同じ理由によるんだと思います。
(Pressedイベントでネイティブに遷移するとReleasedイベントが処理されないから、次ボタンを押した際はPressedが起こらずReleasedのみ起こる)

仕方ないので、commandActionでは処理したいことをやるためのthreadを別に立ち上げ、
ユーザがボタンを放してReleasedイベント処理されたかなと思われるくらいの時間threadにwaitかけてそれから処理するように仕組んだんですが、
なんか回りくどいですし、ユーザがボタン押しっぱなしでwait時間切れしたらそもそもこんな処理入れる意味がないですし。。


489 名前:デフォルトの名無しさん [sage] 投稿日:04/10/16 14:34:55
>>484
>>311


490 名前:デフォルトの名無しさん [sage] 投稿日:04/10/17 01:03:15
ゲームを作っているのですがフレーズ再生で困っています。
フレーズ再生を共通のプログラムでC4型、P4型、P5型問わず
動作させたいのですが、C4型のcom.j_phone.amuse.PhrasePlayerに対し
com.jblend.media.smaf.phrase.PhrasePlayer
とパッケージ名が異なるためコンパイルさえ通りません。
jar中にcom.j_phone.amuse.PhrasePlayerクラスを掘り込んで
機種判別してクラスを使い分ける方法を考えたのですが、
どなたか実際に動かしたかたおられますか?


491 名前:デフォルトの名無しさん [] 投稿日:04/10/18 17:23:48
Vodafoneを使っているのですが、
携帯電話の側面についているボタンやオーディオリモコンのボタンのキーイベントを取得する方法ってあるんでしょうか?
携帯を閉じたまま、イベントを発生させたいんですが、何かいい方法あれば教えてください!!


492 名前:デフォルトの名無しさん [] 投稿日:04/10/18 19:02:24
質問です。
EZアプリ(Java)でカメラ制御を行おうとしているのですが、
エラーが出て困っています。誰かご存知の方がいましたら教えて下さい。

以下、サンプルコードです。

PhotoConnection conn = ( PhotoConnection ) Connector.open("photo:");
conn.setMode(PhotoMode.MOBILE_MODE);
PhotoContent photo = ( PhotoContent ) conn.capture(false);
byte[] data = photo.getData();
conn.close();

kjxへのコンパイルは正常にいくのですが、エミュレータで起動すると
「ALERT: Cannot load class com/kddi/id/CameraConnection」
と出てしまいます。コンパイルは出来るので、プログラムは間違っていない
と思うのですが、何が駄目なのでしょうか?
よろしくお願い致します。


493 名前:デフォルトの名無しさん [] 投稿日:04/10/18 22:19:20
>>492
自己レスです。
エミュレータが3.0に対応していないためみたいです。
実機では動きました。


494 名前:デフォルトの名無しさん [sage] 投稿日:04/10/20 05:56:13
P5のエミュレータ
GraphicsUtil.drawRegion()が遅すぎて使い物にならなくて困っています。
どうにもならないのでしょうか?

495 名前:デフォルトの名無しさん [sage] 投稿日:04/10/20 05:58:41
>>494
http://homepage1.nifty.com/marukun/java/vapp.html
> →GraphicsUtil.drawRegion()の処理がエミュレータでのみ著しく重いという事みたいです。

496 名前:デフォルトの名無しさん [sage] 投稿日:04/10/20 14:22:41
P6のエミュでデバッグ情報がでなくなってるんだけど…
コレは以前のエミュのようにデバッグ情報を出すにはどうすればいいでしょうか。

497 名前:デフォルトの名無しさん [] 投稿日:04/10/20 23:00:22
テキストボックスを使って数値を入力したいのですが、どこを探してもiアプリのtextBoxしか見つかりませんでした。
前にVアプリでテキストボックスを利用しているアプリを見たような気がするのですが、
Vアプリにはテキストボックスは無いのでしょうか?
参考になるサイトなどご存知の方居ましたら教えてください

498 名前:デフォルトの名無しさん [sage] 投稿日:04/10/20 23:24:06
>>497
参考になるドキュメント→>>2
テキストボックスはプログラマ各々が自作するものなのか、用意されているものなのか。
といった携帯アプリを作るJavaの構成が理解できてないってこったな。

499 名前:デフォルトの名無しさん [sage] 投稿日:04/10/20 23:42:36
>>497
http://godwood.allnet.ne.jp/vioret/midpapi/javax/microedition/lcdui/TextBox.html

500 名前:名無しさん [sage] 投稿日:04/10/21 05:26:08
JSCLを使って作られていたプログラムをMID-P2.0の機能で
実装し直そうとおもいます。
resフォルダに入れたファイルを読みたいのですが
openDataInputStream(ss);あたりでエラーになるのですが
どうすればいいのでしょうか?
とりあえず画像ファイルはcreateImageで代替えできるのでいいのですが
バイナリだとやり方が思いつきません

エラー
java.lang.ClassNotFoundException: com/sun/midp/io/j2me/resource/Protocol
at javax.microedition.io.Connector.openPrim(+99)
at javax.microedition.io.Connector.open(+15)
at javax.microedition.io.Connector.open(+6
javax.microedition.io.ConnectionNotFoundException: The requested protocol does not exis

環境
j2me_wireless_toolkit-2_1_01-windows.exe

JSCLと関係ないとおもうのですがわかりません
解決策をおしえてください
よろしくおねがいします。

501 名前:500 [sage] 投稿日:04/10/21 05:27:58
import java.io.*; import java.util.*;
import javax.microedition.io.*; import javax.microedition.midlet.*;
import javax.microedition.lcdui.*; import javax.microedition.io.*;
import javax.microedition.rms.*;
try{
//byte buf1[] = new byte [0x3000];
//String s = "resource:///";
//String ss;
//int buf_p=0;
//for( int i = ReadCount; i < 13; i++ ){
//try {
//ss = s+i+".png";
//DataInputStream _in = Connector.openDataInputStream(ss);
//buf_p = _in.read(buf1);
//_in.close();
//
//} catch (IOException x) {
//game_mode = -2;
//break;
//}
//image_back[i] = Image.createImage(buf1, 0, buf_p);
//ReadCount++;
//}
String str;
for( int i = ReadCount; i < 13; i++ ){
str = i + ".png";
image_back[i] = Image.createImage("/" + str);
}
}catch(Exception e){
}

502 名前:494 [sage] 投稿日:04/10/21 12:58:52
>>495
ありがとうございます。
実機では普通に動くのは知っていました。
エミュレータが遅すぎて困ってるんです。
正直デバックが苦痛です。
エミュレータで普通に動かすにはどのくらいのマシンスペックが必要なのでしょうか?
ちなみに私の環境は
P4の2.53GHz、メモリ512MB、OSは2000です。


503 名前:名無しさん [sage] 投稿日:04/10/21 20:44:41
週間ゲーム&アプリLiveでは0x, 30x, 40xと5x, 60x, 80xに分けられていますが
どちらでも動作する50Kbyte未満のJAVAアプリ(jadはMIDlet-OCL: JSCL-1.0.1で定義)も
別々に登録される事になるんですか?


504 名前:デフォの名無しさん [sage] 投稿日:04/10/21 21:40:41
イースってゲームでSDに保存したJARファイルからデータを読み出して使ってるみたいなんですけど、
これは
url = "jar://mc/test/test.jar/test.png";
connector.open(url, Connector.READ);
とすれば開けるのでしょうか?
開発ガイドには jar://ファイル名+リソース名 としか書いてなかったもので・・・

知ってる方居ましたら宜しくお願いします

505 名前:504 [] 投稿日:04/10/22 00:50:52
すいません訂正です

url = "jar://mc/test.jar/test/test.png";
でした。
SD内の、test.jarの中のtestフォルダ内のtest.pngを指定しています

506 名前:488=495=499 [sage] 投稿日:04/10/22 02:54:48
>>490
全部で動かそうと思うとC4型用のAPIのみで作る必要がある。C4のAPI使えばP4/P5でも動くと思う。
機種のライブラリを判別して個別処理させるんなら、判別法がTips編の1.12に載ってるね。

>>491
閉じるとVアプリは一時停止する仕様だから閉じたままは無理。
継続型待ち受けアプリならいけるかもしれんが、P6型ではこのタイプのアプリは廃止されたそうな。
開いたままでもかまわんなら、キーコード表示するデバッグ用のアプリを端末に入れて、
押したキーとキーコード対応を自分で解析すれば何とかなるかもしれん。
もし解析した場合はキーコード情報の報告ヨロ

>>500-501
jarの中身のファイルをストリームで開くのはClass.getResourceAsStreamを使うのが一般的じゃね?
Connector.openとかのURL部分に何が指定できるのかオレは詳しくシラネ。

507 名前:488=495=499 [sage] 投稿日:04/10/22 02:55:12
>>502
普通にっていわれても、アプリでどんなけの処理をしたいかによるから一概にはいえんと思うが。
1回の描画で40*40のImageを使って(使い回して)Canvas#paintのGraphicsに400回ほどdrawRegionを呼んで転送するアプリをオレは書いたけど、
エミュで特に動作速度に不満はなかったなぁ。Time取得して描画前・描画後の差分取ったら0.1秒以下だった、おおむね30-40msecほど。
Pen4 2.4CGHz/1GB/Win2kSP4

あと直接関係ないが、>P4 という表記は紛らわしいのでやめた方がいいと思われ。。
それと、エミュでなく実機でのみの話だと思うが、少数のImageだけ使った方が高速処理できるそうな(新機種手引P6型端末編2.3.3より)

>>503
オレはアプリLive使ってないので知らんが、ページ構成見る限りそう取れるよねぇ。
直接アプリLiveサポに聞いてみたらどう?
アプリゲットの方は、全部で動くアプリの登録は1回でOK

>>504-505
該当箇所(概要編4.6)読んだが、自分でWebからダウソ・RecordStoreに保存したjarファイルにアクセスする場合って前置きがあるが。
SDカードにアクセスするためにはStorageConnection使う方法しかないとオレは理解してるんだが。


で、誰か >488 もおながいします。。

508 名前:488=495=499 [sage] 投稿日:04/10/22 02:58:35
>>507
> Pen4 2.4CGHz/1GB/Win2kSP4
+VアプリエミュP5型

あと、文章が横に長くなってしまってスマソ

509 名前:デフォルトの名無しさん [sage] 投稿日:04/10/22 04:09:16
>>488
>TextBoxで気にせず素直にcommandActionでネイティブ呼び出すような処理を書いたら、
> 次同じソフトキーを押したときのイベントが起こりませんでした。
ここが問題点の核心なんだが2行目がイミフメでコメントできない

ソフトキーでのTextBox呼び出し処理自体は書いたことあって普通に動作してる

510 名前:488=495=499 [sage] 投稿日:04/10/22 05:11:47
>>509
Command登録したTextBoxで、ソフトキー押されたときにネイティブ連係する機能
(具体的にはStorageConnection使ってファイルを保存する操作、
保存時に上書き確認メッセージがネイティブ側で表示される)
を用意した場合で、

 TextBoxに遷移→ユーザがソフトキー押す→commandActionイベント通知→保存処理を実行
 →保存確認メッセージ(ネイティブ)→ユーザがOK→TextBoxに戻る→ユーザがもう一度ソフトキー押す
 →イベントが通知されない・commandAction呼ばれない
となります。さらに続けてもう一回ソフトキーを押すと反応します。
ネイティブ連携しない機能をcommandActionで呼ぶ場合は問題ないです。

TextBoxをCanvasに、ソフトキー(Command)イベントをkeyPressedイベントに
置き換えた場合の説明がTips編(SH53/V601SH箇所)に説明されてますが、
この場合はkeyPressedではなくkeyReleasedでやれと書いてあります。
でもcommandActionイベントはボタンを押したタイミングで起こり、
またボタンを放したタイミングはイベント取得できないので、
同様の回避法は使えません。


で考えたのが >488 後半のThread使った回避法で、
要はユーザがボタンを放すタイミングの時にネイティブ機能が動いているといけないということなので、
ユーザがボタンを押してから離すまでの時間くらいwaitでずらしてから機能を呼ぼうということをしてます。

でも何か根本的解決ではないので、別の回避法やってたり同様の現象で悩んだりしている人がいないかどうかが確認したいんです。


511 名前:500 [sage] 投稿日:04/10/22 05:40:48
>>506
サンクス。試してみマツ

512 名前:509 [sage] 投稿日:04/10/22 08:42:25
>>510 回避策は2つ思い浮かぶ。

1つめ。
keyReleased()で処理すればうまく行くと思うのであればcommandAction()を
keyPressed()とkeyReleased()に分解すればいい。
やりたい処理(ファイルアクセス)をcommandAction()ではなくkeyReleased()に書き、
commandAction()からはkeyPressed()とkeyReleased()を呼び出す。
これで見かけ上はソフトキー押下が数字キー同様のkeyPressed()/keyReleased()
に反応しているかのようになるのでドキュメントの条件を満たしたことになる。
…なーんて、これじゃ回避策になってないね。スマソ

513 名前:509 [sage] 投稿日:04/10/22 08:43:48
2つめ。これが本命の回答。
commandAction()内で重い処理をしていることがズバリ原因なので、その点を変更する。
システムからのイベント通知を受け取るcommandAction()/keyPressed()/keyReleased()
といったメソッド内では、画面描画、通信、ストレージアクセスといった重い処理を
してはいけない。
これらのメソッド内ではフラグ操作や、パラメータをとあるメソッドに送り付けるだけの
処理にとどめる。そしてメインの処理ループでそのフラグなり何なりを監視しておき、
反応があればメイン処理の中で、指定の重い処理を行うようにする。

>ネイティブ連携しない機能をcommandActionで呼ぶ場合は問題ないです。
このことはcommandAction()内で重い処理を行わないからこそと言える。

514 名前:490 [sage] 投稿日:04/10/22 15:21:02
>>506
確かにP4のstubclasses.zipにはcom.j_phone.amuseパッケージが
含まれておりました。
com.j_phone.amuseAPIを使用してみたいと思います。

回答いただきありがとうございました。

515 名前:504 [sage] 投稿日:04/10/22 18:39:44
StorageConnection使って、
Connector.open("jar://mc/test/test.jar/test.png", Connector.READ);
とURLの部分のみ変更を加えてみたのですが
NullPointerExceptionが出て動かないみたい
URL変更前はfile:スキームで正しくファイルが読めていました。

ちなみに読み出そうとしてるtest.pngは空ソースだけのプロジェクトを作って、RESフォルダにtest.pngを入れた状態でjar化したものです。

どなたかSDのjarからリソースを読み込むのに成功した人居ませんでしょうか

516 名前:488=495=499 [sage] 投稿日:04/10/22 22:30:18
>>514
ちなみに、C4のAPIで使えなくなってるやつとして、
ResourceOperator ResourceOperatorManagerのクラスがV601SHから削られてるんでそこだけ注意。
他はたぶん大丈夫と思う。

>>514
StorageConnectionの説明部分ではfileスキームしか記述がないから、一般にはできないんじゃないかな。
公開ドキュメント見ていってるから、実は非公式にできるんですよとかいう話ならこれ以上は何もわからんけど。
なので、イースの場合は自前でjarを解凍してるんじゃないかと推測。
もしくは、jarという拡張子だけど、実は中身はpngなどのリソースを単純にバイナリレベルでつなげただけのものとか。

>>512-513
どもです。
やはりcommandActionの中ではフラグあげるなり別スレッド立てるだけにしてすぐに処理を返し、
やりたいことは、立ち上げたスレッドなりフラグを参照する別スレッドなりでやれという方針しかないですね。

517 名前:デフォルトの名無しさん [] 投稿日:04/10/22 23:05:33
Vアプリに関して質問します。

http://www.itmedia.co.jp/mobile/0203/15/n_jjava2_2.html
ITmediaのこのページにある待ち受けアプリのサンプルを、
J2ME Wireless Toolkit 2.1 でパッケージを作り、
V-appli Emulator(P5型) Ver.1.0 で実行させると、
"ALERT: unable to load class com/jblend/net/j2me/http/HttpException"
というメッセージが出て実行されません。
何がいけないのでしょうか?
stubclasses.zip は V-appli Emulator と同じものを使ってBuildしています。

よろしくお願いします。

518 名前:デフォルトの名無しさん [sage] 投稿日:04/10/23 02:57:47
>もしくは、jarという拡張子だけど、実は中身はpngなどのリソースを単純にバイナリレベルでつなげただけのものとか。

これでしょ。拡張子に制限あるからね。

519 名前:デフォルトの名無しさん [sage] 投稿日:04/10/23 03:16:25
midpで、左のボタン(通話ボタンの上にあるやつ)と右のボタン(電源ボタンの上にあるやつ)の定数コードってどれですか?

Canvas.GAME_A〜Canvas.GAME_Dのどれかだと思うんですけど

520 名前:デフォルトの名無しさん [sage] 投稿日:04/10/23 03:17:59
>>517
そのページのソース確認してないんだけど、インナークラスはちゃんとjarに入れたの?あとpreverifyも

521 名前:519 [sage] 投稿日:04/10/23 04:23:59
すいません。自己解決しました。
Commandクラスを使って、個別に登録するんですねf^^;

522 名前:517 [sage] 投稿日:04/10/23 13:56:44
>>520
KToolbar 使ってるので、問題ないです。


523 名前:504 [sage] 投稿日:04/10/23 14:44:05
>>516>>518
イースで使われているjarを解凍しようとしてみるとエラーが出て無理でした。
どうやらバイナリレベルで繋げて、自前で解凍してるみたいですね
urlの部分をjar://file://mcとしてみましたがこれも駄目のようです。
開発ガイド9にdeflate圧縮データの復元とゆうものがあったのですが全体を展開するみたいなので使えない…。

そこで、バイナリレベルで繋げて自前で解凍する方法を使ってみようと思うのですが
どのように一つのバイナリにすればいいのやら…
解凍の部分はプログラムにxからyバイトまでが〜.pngとゆうファイルで…と記載されてるのでしょうか

524 名前:デフォルトの名無しさん [sage] 投稿日:04/10/23 18:02:11
>>523
順に読み込むだけなら、
ファイル数
ファイルサイズ1
ファイル1
ファイルサイズ2
ファイル2
ファイルサイズ3
ファイル3
・・・
でいいんじゃね?

525 名前:デフォルトの名無しさん [sage] 投稿日:04/10/23 19:09:32
>どのように一つのバイナリにすればいいのやら…

「結合」とかで検索!

526 名前:デフォルトの名無しさん [sage] 投稿日:04/10/23 19:28:39
てゆーか……
画像は適宜結合してなるたけファイル数を減らして、
jarのファイルエントリを縮めるのは定石だと思ってたんだが
世間一般ではそういうことしないのか?orz

527 名前:504 [sage] 投稿日:04/10/23 19:32:04
>>525
VBやら関係無いの多いので時間掛かりそうですが探してみます

528 名前:デフォルトの名無しさん [sage] 投稿日:04/10/23 19:32:15
>>523
各ファイルを読み込んで、それをObjectOutputではき出して、プログラム内で連結して、ファイルに出力して、jそれをar拡張子にしちゃえば?
そんな単純な話じゃないか・・・

529 名前:デフォルトの名無しさん [sage] 投稿日:04/10/23 19:36:55
ここにある波紋アプレット
http://hp.vector.co.jp/authors/VA012735/applet/dropcol.htm
とてもきれいなんだけど、これを携帯に移植できるかな?
画像のピクセルを編集できないといけないみたいだけど。

530 名前:デフォルトの名無しさん [sage] 投稿日:04/10/23 20:01:37
携帯で、ピクセル扱うと遅いよー

531 名前:デフォルトの名無しさん [] 投稿日:04/10/23 22:33:34
質問です
文字列比較でequalsIgnoreCaseを使いたいのですがコンパイルしたときにエラーが出て困っています。
ソースはこんな感じになってます
String[] str= new String[5];
str[0]= "abc";
if(str[0].equalsIgnoreCase("abC")){}

532 名前:デフォルトの名無しさん [sage] 投稿日:04/10/24 01:06:35
>>529
秒間1フレームとかになるかもしれん。

533 名前:デフォルトの名無しさん [sage] 投稿日:04/10/24 01:31:53
>>531
CLDC+MIDPにString#equalsIgnoreCaseはないけど。
toLowerCase/toUpperCaseはあるからそんなに苦労はしないと思うけど。

534 名前:デフォルトの名無しさん [sage] 投稿日:04/10/24 01:45:46
>>526
日曜プログラマなのでそんな面倒なことはしません。
ユーザのパケ代に響いてもシラネ。

>>523
tarなんかの非圧縮でファイルを固める仕様が参考になるんじゃないかな。


で、こんな話がありますが、関係するのはJBlendの中の人だけってことでいいんですよね?
ITmediaモバイル:J2MEに脆弱性。携帯電話のJavaアプリに影響
http://www.itmedia.co.jp/mobile/articles/0410/23/news013.html

535 名前:デフォルトの名無しさん [sage] 投稿日:04/10/24 01:47:39
>>533
自力でequalsIgnoreCaseクラス作ってしまいました…。

536 名前:デフォルトの名無しさん [sage] 投稿日:04/10/24 02:22:02
実機だとfillRect()がズレるって聞いたんだがずれてる?

537 名前:デフォルトの名無しさん [sage] 投稿日:04/10/24 03:08:12
>>534
Nokia DCT4はjblendなのか??

http://secunia.com/advisories/12945/
アプリ起動直前にバイトコード検証が行われるんだけど、そこに脆弱性があって
ネイティブのコードが実行される恐れがあるとか

538 名前:デフォルトの名無しさん [sage] 投稿日:04/10/24 04:30:23
>>536
そんなこと言ってるのは大方drawRect()と比べて幅と高さが1ドットずれるー
とか、リファレンス読み違えて勘違いしてる人なんじゃない?

539 名前:デフォルトの名無しさん [sage] 投稿日:04/10/24 11:03:26
その脆弱性を突けば、もっと高度なJavaアプリが・・・

540 名前:デフォルトの名無しさん [sage] 投稿日:04/10/24 12:46:06
>>539
可能かも?
だが、棒打のアプリは公開する時に解析されるから公開は無理

541 名前:デフォルトの名無しさん [sage] 投稿日:04/10/24 13:14:36
>Nokia DCT4はjblendなのか??
JBlendもSunのリファレンス元に作成されているから同じ脆弱性が発生している。
Nokiaで同じ問題が出ている理由は、元が同じだから。


542 名前:デフォルトの名無しさん [sage] 投稿日:04/10/24 13:21:34
複数のtxetをres内から配列にして読み込むには、どのように
すれば良いのですか?

調べても1つしか読み込む方法が見つからないので、分かる方
ご教授お願いします。

543 名前:デフォルトの名無しさん [sage] 投稿日:04/10/24 21:05:55
>>542
自前でなんとかするしかないんじゃないかな?
\n区切りでString配列を返す関数とか作って。

544 名前:デフォルトの名無しさん [sage] 投稿日:04/10/24 21:59:30
> JBlendもSunのリファレンス元に作成されているから同じ脆弱性が発生している。

なるほど。つーかずいぶん詳しいな

> Nokiaで同じ問題が出ている理由は、元が同じだから。

って事は、JBlendでは既に知られている脆弱性だったって事か?


545 名前:デフォルトの名無しさん [] 投稿日:04/10/24 22:49:17
iアプリにあるホワイトアウト処理みたいなのを使いたいんだけど、
JSCLには無いようなので他の方法で同じ処理をしようと思うのですがどのような処理をすればいいのでしょうか…

546 名前:デフォルトの名無しさん [sage] 投稿日:04/10/25 00:02:31
iアプリの場合、2Dの半透明描画は機種依存
機種によってはホワイトアウトにならないヤカン

547 名前:デフォルトの名無しさん [sage] 投稿日:04/10/25 00:08:42
>>545
com.j_phone.util.ImageUtil#createMaskedImage使えば、
マスクパターンの細かさを段階的に変えていって疑似半透過できるかも。
まぁP6以降だが。

GraphicsUtil#setPixelでピクセル単位でいじればもっと柔軟に対応できるが、
たぶん >530

548 名前:デフォルトの名無しさん [sage] 投稿日:04/10/25 00:23:32
P6以降ですか…。

範囲を指定して色を足していくような処理も重いですか?
例えるとx1,y1からx50,y50までの範囲の色にピクセルごとにr,b,g+100足して表示するとか…。
そんな処理がしたいのですが…

549 名前:デフォルトの名無しさん [sage] 投稿日:04/10/25 01:35:25
>>546
505以降なら、MascotCapsuleを使えば全機種いける。

550 名前:523 [sage] 投稿日:04/10/25 02:19:06
deflate圧縮データの復元ってのがあるみたいなんですけどこれって圧縮データ全てを展開するってことですか?
そもそもdeflate圧縮ってzipの圧縮方法であってますよね?
これ使って指定したファイルだけ取り出す方法あれば嬉しいのだけど。

551 名前:デフォルトの名無しさん [sage] 投稿日:04/10/25 03:45:23
>>542
Vectorクラスに順次放り込んで最後にString配列へcopyInto()して終わり

552 名前:デフォルトの名無しさん [sage] 投稿日:04/10/25 05:22:46
>範囲を指定して色を足していくような処理も重いですか?

範囲が凄く小さいなら大丈夫

>>549
プリミティブ描画で簡単に出来ますな
加算、減算、平均?の3通りしかないけど、ホワイトアウト程度の単純な処理なら問題なし

>>530
機種によっては、drawImageには対応してるけどfillRectには非対応だったり
使い物になりませんw

553 名前:デフォルトの名無しさん [sage] 投稿日:04/10/25 10:00:10
Vアプリで質問です。
Randomクラスを使う羽目になって、ふと疑問に思ったんですが

java.util.*;

ってimportできるんですね。しかもj2seで使えるAPIとはかなり違うみたいですね。
例えば、Math.Random()メソッドは使えないだの、RamdomクラスのnextFloat()メソッドは使えないだの、他いろいろ。

ここら辺についてはどのAPIリファレンスを参照すればいいんですか?
JSCLとCLDCには載ってなかったです。

554 名前:504 [] 投稿日:04/10/25 17:45:15
毎回プログラムにファイルサイズやらを書き換えていくのが面倒なので
>>528さんが言っているObjectOutput使って複数のファイルを一まとめにしてしまおうと思ったのですが
これは
1.纏めるファイル名をlist()か何かで配列に収める
2.手動で適当にファイル(txtとか)を作成して拡張子をjarしておく(binarry.jar
3.一つ目のファイルをbyte配列に読み込む
4.ObjectOutputでbyte配列を3のファイルに書き出す
てな感じで初めに作った配列分、3〜4を繰り返せばいいと思うのですが

ソースはこんな感じでいいのかな。。。
ObjectOutputてのが意味不明なので指摘お願いします…。

String[] files=new String[ファイル数]//ファイル数
for(i=0; i<files.length; i++){
...
...//目的のファイルを読み込む部分
...
byte[] b;//書き込むデータのbyte配列
conn = (StorageConnection) Connector.open("file://mc/binarry.jar");
os = sc.openOutputStream();
ObjectOutput out = new ObjectOutputStream(new FileOutStream(os));//この辺りから意味不明
out.writeObject(data, b);
out.frush();
out.close();
os.close();
conn.close();
}

555 名前:504 [sage] 投稿日:04/10/25 17:52:45
>>554の続きです。連投すみません

読み込む時は
conn = (StorageConnection) Connector.open("file://mc/binarry.jar");
os = sc.openInputStream();
ObjectInputStream in=new ObjectInputStream(new FileInputStream(si));
byte[] b=("filename")in.readObject();//目的のファイルをbinarry.jarから読み込む
in.close();
os.close();
conn.close();

あとはgazou = Image.createImage(b, 0, b.length);で適当に使う。

読み込む時に554で作成したファイル中の目的のファイルを指定出来ると思ってるんだけど妄想?それとも出来ます?
エミュレータでファイルを一まとめにしたの作って、実機でファイルを取り出して使うような使い方がしたいんだけども…不可能かな

556 名前:デフォルトの名無しさん [sage] 投稿日:04/10/25 18:56:53
>>553
JavaのサブセットはJ2ME。主にCLDC、MIDP1.0のリファレンスを参照のこと。
携帯アプリ向けJavaは浮動小数をサポートしてないとか
例えばStringクラスなどでも使えるメソッドが限られているとか
基本的なところが理解できるはず。

557 名前:デフォルトの名無しさん [sage] 投稿日:04/10/25 19:58:10
>>556
ありがとうございます!CLDCに載ってました!
私が読んでいたのはMIDPの方でした・・・。
なるほど、浮動小数をサポートしていないということですか

558 名前:デフォルトの名無しさん [] 投稿日:04/10/25 22:13:09

canvasにしているクラス外からrepaint()を使いたいのだがコンパイラがstaticじゃないと吐く
public static int paint(Graphics g)にしたら今度は
このstaticメソッドはCanvasからのインスタンス・メソッドを〜 とか出る
ようするにcanvasクラス外からrepaint()使うのは無理ってこと?

559 名前:デフォルトの名無しさん [sage] 投稿日:04/10/25 22:26:11
>558
Canvasのサブクラスにrepaint()呼ぶだけのpublicメソッド定義すればいいじゃん。

560 名前:デフォルトの名無しさん [sage] 投稿日:04/10/25 22:30:41
そんな手があったか…半日悩んだのが馬鹿みたいだ
俺の中では559、あんた天才

561 名前:デフォルトの名無しさん [sage] 投稿日:04/10/25 22:53:44

で、Canvasのサブクラスにrepaint()呼ぶだけのpublicメソッド定義は出来たんだけど
別のクラスから呼び出すとエラーでる

Canvasのソースは public String repaint2() { repaint(); return null; }
呼び出してるところのは myCanvas.repaint2();
エラーは  型canvasからのメソッドrepaint2()はstaticではありません。
repaint2をstaticにしてみるとCanvas側でエラー。
なんとかしてくれ…。

562 名前:デフォルトの名無しさん [sage] 投稿日:04/10/25 23:13:44
>561
えーと。
その「別のクラス」に、Canvasのサブクラスを参照するフィールドを作って、
Canvasのサブクラスのインスタンス生成したときにそれをフィールドにセットして
後はそのフィールドのインスタンスのrepaint2()を呼べばいい(はずなんだ)が。
(このときrepaint2()はstaticにしちゃいかんですよ)
しかし、Javaの基本をもう一度おさらいした方がいいかも……

563 名前:デフォルトの名無しさん [sage] 投稿日:04/10/25 23:56:14
フィールド作って〜やればいけた
>>562 サンクス

564 名前:デフォルトの名無しさん [] 投稿日:04/10/26 21:00:03
昨日canvas外のクラスからrepaint()出来なくて困ってた者です。
いざ使おうとcanvas外のクラスから使ってみるとエラーになってしまいました。
色々と書き換えてみたりしたのですがどうやっても直りません
ソースは以下のようになってます
/* midlet */
public class msc extends MIDlet {
public msc() {
cvs canvas = new cvs(this);
Display.getDisplay(this).setCurrent(canvas);
(new Thread(canvas)).start();
}
...startApp()とかが続く
/* cvs */
public class cvs extends Canvas {
private MIDlet midlet;
cvs() {}
cvs(MIDlet midlet) { this.midlet=midlet; }
public void run() { shori.exet(); }
public void paint(Graphics g) { ... }
...略
/* shori */
public class shori {
private static cvs cv;
public shori() {}
public static String exet() { cv=new cvs(); ... }
...略

565 名前:デフォルトの名無しさん [sage] 投稿日:04/10/26 21:25:51
>564
えーと……やっぱし、Javaの基本、クラスとは何でメソッドとはどういうもので、とかを
もう一辺やり直した方がいいと思う。
例えばメソッドがstaticってのはどういう意味なのか、何故staticなメソッドから
そうでないメソッドが呼べないのか、全然分かってないのでは。

とりあえず、
・cvs#run()でshori.exet()を呼んでるが、それなら単に
 cvs#run()でrepaint()を呼べば済む話では?
・shori.exet()でcvsの新しいインスタンスを作っているが、
 それがmscのコンストラクタで生成したcvsのインスタンスと
 * 全く関係のない、縁もゆかりもない別物 *だということは分かってる?

566 名前:デフォルトの名無しさん [sage] 投稿日:04/10/26 21:32:24
/*shori*/んとこのcv=new cvs();無しにしればいけるのでは??

567 名前:デフォルトの名無しさん [sage] 投稿日:04/10/26 21:34:26
連投ごめ、多分だけどprivate static cvs cv;てしてるとこのprivateも要らないと思う
それで一回やってみそ

568 名前:デフォルトの名無しさん [sage] 投稿日:04/10/26 21:40:31
>>564
オレも、クラスとインスタンスとstaticについて理解し直すとこからやり直した方がいいと思う。
Javaの基本というか、オブジェクト指向の基本だし。
その調子だと、privateとpublicの違いについても怪しいな。

569 名前:デフォルトの名無しさん [sage] 投稿日:04/10/26 21:48:36
>>565
ごめん
学校で習った程度だから漏れの知識ショボイ
クラスとは何でとかも習ったけど小学生相手にリンゴが一個あって〜とかと同じレベル

>>566-567
言ってる部分を消してみるとエラーでエミュが落ちることは無くなった
けどが描画されない・・・

570 名前:564 [sage] 投稿日:04/10/26 22:13:52
>>568
装飾子の違いは分かってる…と思う
privateとpublicの違いは確か、同クラス内と制限無しだったような
staticは共有メモリ領域を利用するんだっけ…

571 名前:デフォルトの名無しさん [sage] 投稿日:04/10/26 23:40:28
auのPhase3.0エミュを使って通信でtxtファイルを取得しようとすると403が帰ってきます。
実機では問題ありません。サーバー側のログを見ると
実機では
con = (HttpConnection)Connector.open("http://aaa.jp/"+net);
のうちのnetの部分だけをGETしているのに対し、エミュレータからだと
http://から取得しようとしている、という違いがあります。
エミュレータがわの設定の問題なのか、サーバーの設定なのか通信関係の知識がないためにわかりません。
一応403の意味はググってしらべました。
それからサーバーは自宅サーバー(win)です。


572 名前:デフォルトの名無しさん [sage] 投稿日:04/10/27 01:10:00
>>564
MIDletとCanvasとshoriの関係ってどうなってんの?って話。
端末はアプリ実行時にMIDlet生成しようとして、通常MIDlet内でCanvasを生成して
実際の処理はCanvas内で完結するように作ると思う。
第3のインスタンス(shori)をCanvasで生成して、そいつからCanvasに再描画させるなら
 cvs(MIDlet midlet) { this.midlet=midlet; }
と同様に、shoriの中に
 shori(Canvas canvas) { this.canvas=canvas; }
としたら、このコンストラクタ後
 canvas.repaint();
で出来る。もちろんこれだけではないが、MIDlet(msc)とCanvas(cvs)の関係と同様に
Canvas(cvs)と処理役(shori)の関係を作ればいいってこと。

>>571
報告乙。え?質問なの?

573 名前:デフォルトの名無しさん [sage] 投稿日:04/10/27 16:15:08
>>571
403の意味より…

574 名前:564 [sage] 投稿日:04/10/27 17:29:35
さっき買ってきた本見ながら572さんの言ってるのを色々試してみるといけました。

コンパイラでエラー出ないし実行も問題ないんだけど
/*cvs*/の所でshori2(shoriとはベツ)のメソッド使用すると
型shori2からのstaticメソッドmethod(String)にはstaticにアクセスして下さい
と警告が出る
shori2.method(String)からstaticを取ると警告は出なくなるけど、shoriがエラー。

実行出来てるし問題はないと思うんだけどかなり気になるのでたいさくあれば教えて下さい

575 名前:デフォルトの名無しさん [sage] 投稿日:04/10/27 18:02:24
>574
もう分かったから晒せる範囲でソース*全部*晒せ。
いつの間にか最初は影も形もなかったshori2が出てきてるじゃないか。
この分だと「実は……」でshori3、shori4が出てきそうで付き合い切れん。
(まぁ、携帯相手に6個もクラス作ってる余裕は普通ないはずだが
それを言ったら、そもそもクラスは2つまで!!が定石なはずだし)

576 名前:564 [sage] 投稿日:04/10/27 18:49:39
>>575
ソースは
/*cvs*/に、
shori shori = new shori(this)
shori2 shori2 = new shori2(this)
が増えてて、cvs()[}が消えてる
/*shori*/は
static Canvas canvas;
が増えててコンストラクタがpublic shori(Canvs canvas){shori.canvas=canvas}
に変わってる
/*shori2*/は単純に受け取った文字列を無限ループで表示するメソッドがあるだけ
コンストラクタはshoriがshori2に変わってるだけで同じ
んで、メソッドが一つあるだけ
public static String testt(String str){
try{
...draw関係...
canvas.repaint()
while() ;
}catch(...){}

そんで、cvsからshori2のtestt()を呼ぶと警告がでる
呼んでる場所は/*cvs*/のshori.exet()の次の行
shori2testt(moziretu);

577 名前:デフォルトの名無しさん [sage] 投稿日:04/10/27 19:48:54
>576
……対策はただ一つ。
藻前さんがもう一度Javaの入門書をきっちり読んで理解すること。
それが嫌なら、警告が出続ける事実を甘んじて受け入れろ。

ちなみに「なぜか知らないけど付けたor取ったら動くようになった」って理由で
メソッドにstatic付けたり取ったりしてるようでは「入門レベルなら理解してる」
とは言えない。

578 名前:デフォルトの名無しさん [sage] 投稿日:04/10/27 22:52:14
対策:Java言語の入門書(携帯アプリの本じゃないぞ)でしっかり勉強する

近道は無いよ
----------------------------

次の方ドーゾ

579 名前:デフォルトの名無しさん [] 投稿日:04/10/28 00:23:25
なんかオートバックスにVodafone用GPSが売ってて、専用Vアプリを使えばカーナビになるって事なんだが。。。GPSとVアプリとの通信方法って公開されてるかどうか、誰かしらない?

580 名前:デフォルトの名無しさん [sage] 投稿日:04/10/28 01:32:40
>>579
シリアル制御してんじゃないの?
その手の話はほとんど知らんのであくまで憶測だが。

581 名前:デフォルトの名無しさん [sage] 投稿日:04/10/28 01:41:24
>>579
ttp://developers.vodafone.jp/dp/tool_dl/java/tech.php
それっぽいのあるけど、pdfの中までみるのはめんどい。

582 名前:デフォルトの名無しさん [] 投稿日:04/10/29 21:31:30
Vアプリの質問はここでいいのか分からないのですが質問です

while(true)でループ中にユーザーがソフトキーを押すと
ユーザーからの操作を受け付ける画面を出し、初めの画面に戻ってしまわないように
while(true)で操作があるまでループし続けるようにしているのですが、
両方で交互にrepaintが実行されて画面がチカチカと元の画面になったりユーザーから操作を待つ画面になったりします
そして少し時間が経つと元の画面に戻ります
戻ってきたところまではいいのですがそのまま固まってしまいどの操作も受け付けなくなってしまいます。

使用エミュレータはP6です
Threadを使用したプログラムでソフトキーを押した場合の処理はcommandAction内に書いてます。

どなたか解決策ご存知の方居ましたらご回答宜しくお願いします

583 名前:デフォルトの名無しさん [sage] 投稿日:04/10/29 21:42:47
書き忘れていました

呼び出し元のwhile文の中にソフトキーが押された時にだけThread.yield()を実行するようにして
ソフトキーを押した時に実行されるwhile文をfor文に変えてg.drawString("i="+i,0,0,Graphics.LEFT|Graphics.TOP)
としてみたのですがiの数値は増えて表示されるもののどの操作も受け付けませんでした

584 名前:デフォルトの名無しさん [sage] 投稿日:04/10/29 22:10:23
>両方で交互にrepaintが実行されて

「されて」じゃなくて、そうなるようにプログラムを組んでるんだよ
そうならないようにプログラムを書けば解決

あと、Thread.yield()の意味を勘違いしてるヤカン

585 名前:デフォルトの名無しさん [sage] 投稿日:04/10/29 22:38:41
repaintが交互に実行されないように、
ソフトキーを押した時の画面が出ている状態では元の画面でrepaintされないようにしてソフトキーの画面のみrepaintするようにしてみました
がチカチカと元の画面に戻ったりソフトキーを押した時の画面になったりします。

Thread.yield()の使い方間違えていたみたいなので消しました。
すみません

586 名前:デフォルトの名無しさん [sage] 投稿日:04/10/30 02:32:00
なんか、とてつもないわけわからん構造になってる予感。
Canvasはデフォでダブルバッファリングされてるから、
repaintが非同期に呼ばれるだけではちらつくことはあり得んと思うんだが。

情報が小出しなんであくまで想像だが、
SpriteCanvasによる画面への転送は、
たとえSpriteCanvasがDisplayableに設定されてないときにも行えるから、
SpriteCanvasの描画と「ユーザーからの操作を受け付ける画面」の描画が
交互に行われてちらついているんじゃないかな。

587 名前:デフォルトの名無しさん [sage] 投稿日:04/10/30 14:47:33
まだ初心者で漏れもよく分からんが、setCurrentで切り替えが一番いいんでないか?

588 名前:デフォルトの名無しさん [sage] 投稿日:04/10/30 16:12:13
582です

587さんの言っているsetCurrentで
ソフトキーを押した時に画面を切り替えることは出来ましたが
呼び出し先で操作を受け付ける画面を描画しても、コンパイラでは問題無しなのですがエミュだとまったく描画されませんでした。
そこで呼び出し先のクラスのextends Formを消してみるとコンパイルエラーになってしまいます。。

589 名前:572 [sage] 投稿日:04/10/30 16:42:49
>>588
せやから急に「extends Formを」とか出すな。消したら〜とかまるで分かってない証拠。
564にも言ったけどインスタンスの関係をハッキリさせて。
どうせソフトキー押した時とかの処理がキッチリできてないから
「元の画面でrepaintされないように」が裏目に出て再描画されてないんじゃない?
とりあえずボタン押しで確実に処理がされているかどうか分からないなら
一行ずつSystem.out.println挟んでどの行まで実行されてるか確認してみたら?
確実に再描画の行が実行されているはずなのに画面変わらないとかはその後。
素早く確実で楽に解決したいならソース丸ごとあげてくれ。

590 名前:588 [sage] 投稿日:04/10/30 20:28:09
>>572
過去に画面切り替えの質問があったので、
工夫すればもしかしたら動くかもしれないと思いやってみたのがFormです
コンパイラのエラー出さなくなりましたが目的の動作はしませんでした。

int flag=0;としておいて、
ソフトキー押した時にflag=1;にして
初め表示している画面でif(flag=0) repaint();などしてみたのですが効果ありませんでした。

どのような動作にすればいいのかよく分からなくなってきたので
一旦コンパイラがエラー出さなくなった状態に戻してソースをzipであげておきました
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=130
素早くなくてもいいんですけど
確実に解決したいのでよろしければ適当に修正してもらえれば幸いです

591 名前:デフォルトの名無しさん [sage] 投稿日:04/10/30 21:40:26
>>582
564と同一人物かよ!って別にそれはいいんだけど、
これがどうなるといいんだっけ?普通に画面の切り替えは問題なさそうだけど。

むしろやろうとしてる事がわかるならエラー有るままのほうがやりやすかったかも。

592 名前:デフォルトの名無しさん [sage] 投稿日:04/10/30 22:58:44
対策:Java言語の入門書(携帯アプリの本じゃないぞ)でしっかり勉強する

近道は無いよ
----------------------------

次の方ドーゾ

593 名前:デフォルトの名無しさん [sage] 投稿日:04/10/30 23:51:28
同一人物じゃないと思うが…。

>>590
あんま分からんケド一応見てみたが
試しに動かしたらcommand_actionのコンストラクタで呼び出してるmenu ()が実行されてない
cmdMenu押した時のdisplay.setCurrent(command_action);の行をcommand_action.menu();に変えると画面がチカチカした感じになる

590の言ってるのはこれじゃないかと思った
このチカチカするのをなくしたいと。
質問の意味勝手に妄想したケド合ってる?
まあ合ってた所でどうすればいいか俺にはわかんね

594 名前:586 [sage] 投稿日:04/10/31 00:18:23
>>590
ソース見させてもらったが・・・愕然とした。
こりゃ、アドバイスで何とかなる範囲じゃないと思う。

現在画面に設定されているのはどのDisplayableなのか、
今生きているThreadはどれなのか、
どのThreadがどの処理を行っているのか・行うべきなのか、
このへんを意識しないととんでもないものができあがるぞ。

つーことで、>592 に同意。
Javaの書き方というよりかは、JavaAppletなどのイベント指向を理解した方がいいと思う。


とりあえず動くだけでいいなら・・・とかアドバイスしようと思ったけど、
こんなもんをリリースされちゃかなわん。。
コンストラクタ処理をwhile(true)でブロックしたり(sleep()時に例外出てる模様)、
無駄にcvs(=Canvas)をThreadとして走らせたりしてるし、
Formを画面表示してるのに文字を(Currentな画面でない)cvsに書いてるし。

595 名前:572=591 [sage] 投稿日:04/10/31 00:33:40
>>593
同一だと思ったのはCanvasにcvsなんて名前つけてた部分だけど、間違ってたらスマソ。

確かにそうすりゃチカチカするね。
つーか、
冷静にソース見たらmenuでwhileループがマズイ。
メインのスレッドがmenuをずっと続けるのでcommandActionとかをやるスレッドが無い。
new Thread した奴はせっせとrunメソッドでループを続けてるだけ。
つまり2本のスレッドがwhileループに入ったままになる訳だ。
最初に「時間が経つと元に」ってのは、あんまりループ続くからフリーズとかだと。

って書いてる途中に594に先越されてしまったけど、確かに勉強は要る。
勉強したくないならあんまりややこしいことに挑戦しないってのも手かも知れんけど。

596 名前:593 [sage] 投稿日:04/10/31 01:34:02
ま、理解しろとか言っても普通分からん。
事実漏れは2年間も学校でjava習ったがオブジェクト指向のおの字すら分からんねーし。
未だにコピペコピペで普段使うところ以外ワカンネ

どうせ理解したって質問するような事(ネットにサンプルが流れてない)するんだったら今後使う可能性低いから覚えるだけ無駄
理解しろ言う前に質問受ける側はなんでもいいから適当にソース修正してうpしてやるのが一番かと。
そんだけ言って何もしないのは格好悪いのでうpしておいた
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=131

んであげてから気づいたから訂正
dispchange.javaのコンストラクタにあるthread_B.start()を消して
最後のほうにあるthread_A.yield()をThread.yield()
んでその次の行にthread_B.start()を追加

これで一応動きはするが画面切り替え時に一瞬白くなる
つーかこれであってるかも分からん。
警告orエラー出てないから問題はないと思うが誰か見てくれ
あと画面が白くなるのなんとか出来る人修正きぼん

597 名前:593 [sage] 投稿日:04/10/31 01:58:04
あ、だめだ
これだとcvsから別クラスのメソッド呼んで実行してる時にmenu押しても両方でrepaint呼ばれちゃうよ
勝手に別クラスって妄想入れたけどあってたりするかな
回避方法ワカンネので誰か分かる人よろ

別クラスとか言ってるけど何も知らない人が勝手に妄想した単語並べてるだけなんで適当に解釈してやって下さい

598 名前:572 [sage] 投稿日:04/10/31 03:13:56
じゃあ僕もアップしてみよ。
ttp://sterdust.net/upload/upload.cgi?page=Download&dir=&sort=date&filename=souce572.lzh
変更箇所には//572と記述
僕の経験上スレッドでループさせたりさせなかったりはフラグを使うのが普通。
canvasとcommandでisRunningフラグ作って、画面切り替えタイミングでフラグ変更。
あとstartAppでやる事消したのと、yieldさせてないのと。この辺は好みかも。

切り替わる時白くなるのは仕方ないと思う。EZエミュでは起こらなかったけど。
どちらの状態でもGraphicsに描画するなら描画は一つのCanvasに任せて
2つ以上のクラスでoffImgの内容を変えるだけにしてsetCurrentを避けると吉。
ttp://sterdust.net/upload/upload.cgi?page=Download&dir=&sort=date&filename=souce572_2.lzh
で、やってみたのが上。もう修正するなんてものじゃなくなってるけど。

599 名前:デフォルトの名無しさん [] 投稿日:04/10/31 05:15:07
どなたかphase 3 エミュレータをアップしていただけないでしょうか?

600 名前:デフォルトの名無しさん [] 投稿日:04/10/31 15:00:50
プログラムからそれが走っている端末のバージョンを
Phase3 or Notだけでいいので知るほうほうってないですか?


601 名前:588 [sage] 投稿日:04/11/01 00:28:57
>>593さん、>>572さん
あげて頂いたソースを参考にこちらのアプリに組み込んでみたところ、思い通りの動作をさせることが出来ました。
画面が切り替わるときに白くなるのはこちらのエミュレータでは起こりませんでした。
返事が遅くなってしまいましたがありがとうございました

602 名前:593 [sage] 投稿日:04/11/01 21:53:22
ちょっと質問。

ソフトキーが押されると、
今やってる処理を強制終了(?)させて処理させるところを移動させたいのだけど、
どうすればいいかな?
多重ネストからの脱出ってのは見つけたけど、
これだとbreak文とラベルの記載してる場所が違うと動かないぽい気がするので・・・。

実験もせず書いてるので「出来るに決まってるヴォケ」とか「こんな方法がある」とか、
あと「あんたの説明意味不明」とかでもいいので適当に突っ込んでください

603 名前:593 [sage] 投稿日:04/11/01 21:59:21
ごめん書き忘れ

ソフトキー押した時にフラグ立てて、
強制終了(?)させたい所にifでフラグ立ってたらbreakするとかだと場所が多くて、
今どこの処理やってるのか分からないから記載個所が多すぎて対処しきれない。

main(){
while(true){
//ここ
for(...){}
...
この後もfor文やらwhile文がずらずら。
...
}
}
commandAction(...){
if(c==softkey){}//←ソフトキーが押された時に上の「ここ」ってとこに処理を移したい
}

かなり意味不明な書き方になってるけどこっちの文章力が無いから勘弁
とりあえず、「ここ」って所にソフトキーを押した時に移動したいわけ。

604 名前:デフォルトの名無しさん [sage] 投稿日:04/11/02 05:02:49
>>602-603
キミも>>578>>592かな…

605 名前:デフォルトの名無しさん [sage] 投稿日:04/11/02 06:55:19
答:無理

606 名前:デフォルトの名無しさん [sage] 投稿日:04/11/02 07:03:33
ん?オレは例外投げて対処させたが。
まぁいわゆるgotoがあるプログラムは構造がダメだという例に当てはまるからイクナイと思う。

607 名前:デフォルトの名無しさん [sage] 投稿日:04/11/02 07:13:33
処理をどうする以前に、設計がまずいんじゃ

608 名前:デフォルトの名無しさん [] 投稿日:04/11/02 09:32:37
V601TでTextBoxのMaxSizeに指定できるのは128KBまでという制約ってあるんでしょうか。
厳密には、setMaxSizeで127*1024なら大丈夫、128*1024でアウトとなってます。

コンストラクタやsetMaxSizeでの指定→問題なし
128KB以下のStringをsetStringで入れる→問題なし
入れたTextBoxをDisplayに設定→問題なし
設定されたTextBoxで決定押して編集開始→開くとなぜかまっさら(文字数制限が0文字までになってる)
キャンセルするとsetStringで入れた文字に戻ってる、決定すると当然まっさら文字が入力される。


エミュで問題起きてなく実機(V601T)で問題起こってるんで、おそらく機種依存の現象だと思うんですが。
もし何か情報あればお願いします。。
(時間あれば私の側でも実験してみます)

609 名前:デフォルトの名無しさん [] 投稿日:04/11/02 17:23:24
KDDIのezplusエミュレータで、
画面サイズが最大で147*147までにしかならないのですが、
QVGAサイズを表示させることはできないのでしょうか?

610 名前:デフォルトの名無しさん [sage] 投稿日:04/11/02 18:19:40
32bitビットマップ形式の保存ファイルは存在しねーぞ。
PCの液晶でも24bitカラーなのに、携帯で32bitなんてあえりえねーだろ。
つーか普通16bitだし。

VRAMの制限でねーの?


611 名前:デフォルトの名無しさん [sage] 投稿日:04/11/02 18:20:07
うあ、激しく誤爆

612 名前:602-603 [sage] 投稿日:04/11/02 19:39:30
>>606
それでいけそうな気がしてきた
>>607
設計なんて何も考えてない

613 名前:デフォルトの名無しさん [sage] 投稿日:04/11/02 22:09:18
>609
Phase3.0対応エミュが必要。
Phase3.0対応アプリを開発する必要があるなら、
どっかからか入手できるはず。健闘を祈る。

614 名前:デフォルトの名無しさん [] 投稿日:04/11/03 03:18:42
Vアプリを配信するのに、ベクターからやろうと思うんだけど、
ConnectorのAPIの代わりに、ベクターで配っているJConnectorを
使用しないといけないんだけど、何度やってもclassファイルが壊れている
って、wiressToolでコンパイルする度言われる。。。。

だれか、経験者いない?

615 名前:デフォルトの名無しさん [sage] 投稿日:04/11/05 02:24:55
EZアプリでget(Calendar.WEEK_OF_MONTH)を使おうとすると
WEEK_OF_MONTHが解決できませんと出ます。
月の何週目かを取得することはできないのでしょうか?

616 名前:デフォルトの名無しさん [sage] 投稿日:04/11/05 03:20:33
CLDC1.0のCalendarにWEEK_OF_MONTHはない。
複雑な式にもならんから自力で計算すれ。

617 名前:デフォルトの名無しさん [sage] 投稿日:04/11/07 23:56:41
iアプリの場合、通信できるのはダウンロードしたときのサーバに限定されてるけど、
Vアプリ、ezアプリの場合ってどうなってるの??

618 名前:デフォルトの名無しさん [sage] 投稿日:04/11/08 01:56:58
>>617
ez -- あらかじめjadに記載したサイトのみ
V ---オフィシャル登録必要、端末内リソース利用と併用しちゃいけない。

619 名前:デフォルトの名無しさん [sage] 投稿日:04/11/08 02:47:58
>>618
おお、サンクス
オフィシャル登録って有料なんだねorz

620 名前:デフォルトの名無しさん [sage] 投稿日:04/11/09 06:44:33
(´,_ゝ`)プッこのスレで質問するレベルじゃないわな

621 名前:デフォルトの名無しさん [sage] 投稿日:04/11/13 17:48:16
質問します。どなたか分かる方、ご教授よろしくお願いします。

Vodafoneの携帯用のアプリを作っているんですが、
「import javax.microedition.lcdui.Canvas;」または
「import javax.microedition.lcdui.*;」を記述しても、
その他いろいろimportしても、
「getGraphics()」メソッドが使えません。コンパイルエラーが出てしまいます。
「paint()」メソッドとかは現時点のプログラムで使えているんですが。。。

「javax.microedition.lcdui.Canvas」の中には、「getGraphics()」メソッドは
存在していないのでしょうか?

そもそもgetGraphics()を使おうと思ったのは、paint()メソッド内や、
paint()メソッド内から呼び出すメソッド以外でdrawString()などを使いたかったんですが、
それをする場合、getGraphics()を使う以外に方法はあるのでしょうか?


622 名前:デフォルトの名無しさん [sage] 投稿日:04/11/13 18:29:57
まず>>2を見て最低限リファレンスを読むくらいはしろ。
質問はそれからだ。

623 名前:デフォルトの名無しさん [sage] 投稿日:04/11/13 19:16:51
リファレンスを見てみたんだが、それでもできなかった。

で、getGraphics()を使わない汚い方法を思いつきました
(インスタンス変数として作っていたGraphics型の変数(g2とする)に
paint()内で「g2 = g;」とやっておいて、プログラムの頭でrepaint()を呼ぶ)。
他の方法をご存知の方、ご教授くださいませ。

やっぱり、携帯に電話がかかってきたりして画面が壊れた時のために
画面描画はすべてpaint()内とその中から呼ばれるメソッドでやってたほうが
いいんでしょうなあ。スプライトも使ってるのでそれとの共存とか、
その時のゲーム内の状態(ウインドウを開いているとか)ごとの処理とか、
はあ〜〜めんどそう。

624 名前:デフォルトの名無しさん [sage] 投稿日:04/11/13 19:33:45
>>623

>>553
>>556

625 名前:デフォルトの名無しさん [sage] 投稿日:04/11/13 21:19:35
> リファレンスを見てみたんだが、それでもできなかった。

意味不明

> はあ〜〜めんどそう。

ストレスたまるだけだから止めたほうがいいよ

626 名前:デフォルトの名無しさん [sage] 投稿日:04/11/13 23:03:44
>>623
http://netaro.ddo.jp/techinfo/Javadoc/MIDP1.0a/html/index-all.html

627 名前:デフォルトの名無しさん [sage] 投稿日:04/11/14 03:34:38
doubleの値を使ってプログラム組んでみるとコンパイラで
Floating point result not allowed
com.sun.kvem.ktools.ExcecutionException: Preverifier returned 1
と言ってきてコンパイル出来ない。
浮動小数点の結果がどうとか言ってるっぽい感じなんだけどエラーの意味わかる人居ます?

628 名前:デフォルトの名無しさん [sage] 投稿日:04/11/14 03:38:05
>>556

629 名前:デフォルトの名無しさん [sage] 投稿日:04/11/14 12:52:55
>>621
Image img_back;
Graphics gra_offs;
/** Canvasクラスを継承したクラスのコンストラクタ等で取得 */
Image img_back = Image.createImage(width, height);
Graphics gra_offs= img_back.getGraphics();
protected void paint(Graphics g) {
gra_offsに対して描画
gra_offsからgにオフスクリーン転送
}

>>627
MIDPでは浮動小数点は使用できない。各携帯メーカーの拡張APIを使うか
それが嫌なら整数を100倍や1000倍にしてアプリで工夫するべし。

630 名前:629 [sage] 投稿日:04/11/14 12:54:05
ああ、記述ミス。
img_back = Image.createImage(width, height);
gra_offs= img_back.getGraphics();
こっちね。

631 名前:627 [sage] 投稿日:04/11/14 15:20:27
あれ、使えないんですか。
vfはFixedPointで使えるようですけど、+はadd()に置き換えたりしないとだめ?

632 名前:621 [sage] 投稿日:04/11/14 15:24:27
>626,629,630
サンクスです!

俺の言葉が足りなかったみたいです。
俺の欲しかった Graphics型は、paint(Graphics g)の方で、
g.drawString() とか g.drawLine() とかするやつのほうです。
これら drawString() やdrawLine() を、repaint() を呼んでpaint()内(やそれ以下のメソッド)でやる以外に
paint()の外でできないかなあ、と思ったのでした。

「i アプリ」を以前に作ったとき、インスタンス変数(クラス内の各メソッドの外で宣言する、staticナシの変数)に
コンストラクタで「g = getGraphics()」とやって、それ以降は、
オーバーライドするpaint()内ではいっさいなにもせず(空ブロック { } のままにしておく)、
いろんなメソッド(スコア表示・キャラ表示・背景表示などのそれぞれの各メソッド)で描画が必要になったら
前述のインスタンス変数にて g.drawString() とか g.drawLine() とかやっていたんです。
昔のBASICプログラムがいつでも画面描画ができていたので、そのノリで。

「電話がかかってきた時などの割り込みで壊れた画面を元に戻す」ということを考えていない設計でした。
その、「i アプリ」作成時に俺が使っていたgetGraphics()は 「i モード java」のCanvas クラスにあるんですが、
他の java には無いのかもしれません(626さんが見せてくれた方も違うみたいです)。
「i モード java」以外のjavaでは、「drawString() や drawLine() をしたいときは paint()内とその中から呼ぶ
メソッドでしかやってはいけない」という設計なのかもしれません。それはそれでよい方針なので、
私もそのような設計がなされたものに今作っているやつを作り変えていこうかと思ってます。

私の621の書き込みに「i モード java で以前使っていた CanvasクラスのgetGraphics() 」という記述が
抜けていたため、622,624さんをはじめ、みなさんに手間を取らせてしまいました。
どうもありがとうございました。



633 名前:627 [sage] 投稿日:04/11/14 15:35:03
連投すいません、
FixedPoint型では<が未定義みたいなんですが、
ifで判断を行う場合はどのようにすればいいでしょうか
整数部のみを取得して比較するのが一般的でしょうか?

634 名前:デフォルトの名無しさん [sage] 投稿日:04/11/14 17:22:38
>>633
(゚Д゚)ハァ?
Javaには演算子のオーバーロードなんて機能はありませんが?

635 名前:デフォルトの名無しさん [sage] 投稿日:04/11/14 19:29:00
>>627
>>vfはFixedPointで使えるようですけど
自分で言ってるこの点でFixedPointがボーダフォンの拡張APIだと分かってよ。
もっかいJSCLとMIDPの違いを確認してね。

636 名前:デフォルトの名無しさん [] 投稿日:04/11/18 03:41:10
>>623
その方法でアプリ作りましたよ。
ドコモからau&vodaの移植で描画周りを作り直す時間がなかったのでそのまま移植するためにそうしました。
auとvoda版も同時移植なのでほぼ3キャリアのソースが同じですみました。
vadaは当然スプライトは使用していません。
描画がシビアでなけれなこの方法はソースの管理がしやすいのでいいと思います。


637 名前:623 [sage] 投稿日:04/11/18 17:10:18
>636
そうですか。俺は今Vodaにスプライト使ってアプリ作ってるんだけど、
スプライト使わない方法に変えたほうがいいのだろうか。
「まるくん」という人も「スプライトの方が遅い」とか自分のHPで言ってたしなあ。

以下は蛇足です。
スプライト使うと、例えば着信があったとき、「アプリ再開」にすると画面が真っ白に
なるんですよ。戻ってきたときに仮想画面(BGを貼り付けたり、g.drawStringで直接書かれる画面)
を白クリアしてるんだろう。
このへんは「着信などの割り込みがあったら、仮想画面全体を書きなおす」とかに
すればいいのだろうが。
で、スプライトを使わない方法で画面描画をやってたら、割り込み後に画面を戻すのも
システムがやってくれるのかなあ、なんて想像してます。

638 名前:636 [] 投稿日:04/11/18 17:46:39
>>637
着信とかのイベントが発生した場合は、pauseApp()に処理が通るのでこの中で全画面の再描画要求を出します。
システムのダイアログが出た後はcanvasの画面を復帰してくれないので自分で復帰させてやらないといけません。

639 名前:623 [sage] 投稿日:04/11/19 04:51:30
>638
なるほど。システムは、「”自分が書く部分を退避させておいて、それを最後に戻す”とかせずに、
”書きっぱなしで終了する”」わけですね。問題のあるシステムだなあ。

サンクスです!さっそく試してみます。



640 名前:デフォルトの名無しさん [] 投稿日:04/11/20 00:32:55
逆コンパイルされた時にソースが見難く(?)なるツールがあるって聞いて
試してみたいんだけど、このツールがいいよってのがあったら教えて欲しいです

641 名前:デフォルトの名無しさん [] 投稿日:04/11/20 00:39:35
アプリを一定速度で動作させたいのですが、良い方法が分かりません。
今は以下の方法で速度を一定に見せかけていますが、
paint()にかかる時間が変動するとその分速度が狂うし、
sleepで必ず処理が待機する分、ゲームや描画の処理が損してるような
気がします。

while(true){
 try {
 Thread.sleep( 100 );
 } catch( InterruptedException ie ) { }
 repaint(); //ゲームの処理と描画
}

皆さんはどのように処理しているのでしょうか?


642 名前:デフォルトの名無しさん [sage] 投稿日:04/11/20 01:15:58
InterruptedExceptionの意味がわかんねから
あくまでも参考程度に

単純に、
while(true){
Thread.sleep(100);
repaint();
}
じゃ駄目なのか?

それがだめならタイマー使えば正確に測れる

643 名前:642 [sage] 投稿日:04/11/20 01:18:24
書いてないのに送信してしまった失礼

>>640
難読化ツールのこと?
漏れも検索してみたけど見つかんなかった
誰かよろ

644 名前:デフォルトの名無しさん [sage] 投稿日:04/11/20 02:06:17
Javaバイトコードなんて、
せいぜい識別子を1文字にするとかそんなレベルでしかできないと思うんだけど。

645 名前:デフォルトの名無しさん [sage] 投稿日:04/11/20 13:56:31
>643
>難読化ツール
ProGuardってのがフリーで使える。
ttp://proguard.sourceforge.net/

>644
携帯の場合、読みにくくすることより、まさにその
>識別子を一文字にする
ことで、classファイルが縮むことに意義があったり。

646 名前:デフォルトの名無しさん [sage] 投稿日:04/11/20 15:21:08
>>641
それだと処理にかかる時間が考慮されない予感。

long drawtime = 0;//前に描画した時間
long nowtime = 0; //毎回取得する時間


nowtime = System.currentTimeMillis();
if(100 <= nowtime - drawtime){
drawtime=nowtime;
ここに処理
}

とかで良いんじゃないかな。見にくくてスマソ。

647 名前:デフォルトの名無しさん [sage] 投稿日:04/11/20 16:08:19
serviceRepaintsはなくてもいいのか?

648 名前:640 [sage] 投稿日:04/11/20 17:05:35
>>645
さんくす

649 名前:デフォルトの名無しさん [] 投稿日:04/11/22 11:23:56


650 名前:デフォルトの名無しさん [] 投稿日:04/11/22 16:26:32
Vアプリの開発はじめました。教えてください。
P5型(JSCL-1.2.1)から追加されたGraphicsUtilクラスの
drawRegionメソッドをP4型(JSCL-1.1.1)で利用したいと思います。
P4型SDKのstubclasses.zipをP5型のものに上書きし、
コンパイルはできたのですが、P4型エミュレータでは
unable to load classes エラーになってしまいます。
上位のSDKで追加されたクラスを利用するにはどうすればよいのでしょうか。

651 名前:デフォルトの名無しさん [sage] 投稿日:04/11/22 16:47:47
>上位のSDKで追加されたクラスを利用するにはどうすればよいのでしょうか。
上位のSDKで追加されたクラスは使用できるのでしょうか?

652 名前:デフォルトの名無しさん [sage] 投稿日:04/11/22 17:38:41
>>650
stubclassの名の通り、SDKのクラスには実際のコードが含まれていない。
実際のコードは実行環境側にあるので、不可能。

653 名前:デフォルトの名無しさん [] 投稿日:04/11/22 21:50:59
>実際のコードは実行環境側にあるので、不可能。
ありがとうございます。とんちんかんな質問でした。申し訳ないです。。。
それでは、P4型で読み込んだ画像(png)を90度回転させたり、上下左右反転
させたりするにはどうすればよいのでしょうか?AppletだとPixelGrabberで
ピクセル取得して入れ替えて表示させたりしているのをみつけたのですが。
クラスを自作するとしたら、どのようにすればよいですか?

654 名前:デフォルトの名無しさん [sage] 投稿日:04/11/23 00:02:14
>>653
Vアプリは作ったことないが、その為にボーダではスプライトがあるんじゃね?
スプライトが嫌なら前方向に回転させたpngを用意するとか。

655 名前:デフォルトの名無しさん [sage] 投稿日:04/11/23 00:29:52
がんばって行列計算するとか。

656 名前:デフォルトの名無しさん [sage] 投稿日:04/11/23 00:36:17
90度単位なら行列計算いらんだろ。

だけど、Graphicsクラス上でピクセル単位でいじれるのはP5からなので、
P4でやろうと思うと、
>654 のスプライトか、PNG解析クラスを自作するかくらいしかないんじゃないかな。

657 名前:デフォルトの名無しさん [sage] 投稿日:04/11/23 12:09:48
潔くPNG解析汁

658 名前:デフォルトの名無しさん [sage] 投稿日:04/11/23 12:20:29
てか自前でPNG解析クラスなんか作って容量大丈夫なのか?

659 名前:デフォルトの名無しさん [sage] 投稿日:04/11/23 18:31:40
回転画像用意する分より小さく作るなら意味あるな

660 名前:656 [sage] 投稿日:04/11/23 22:27:05
オレは、容量よりも手間が気になるが。
んなことぐーたら考えてる間に、90/180/270回転した画像くらい用意できてしまうわな。

>653
どう対処するかは、どんなアプリをどういう形で配布するのが目的かによるんじゃないかな。
特に制約ないなら「P5以上です」と割り切れるし、
ゲーム配布ならスプライトにしてしまった方が楽だし、
とりあえず完成させるのが先ならPNGを4種類回転分だけ用意した方がいいし、
似たようなアプリを今後大量に作らなきゃいけないのならPNG解析クラスを作るのにも意義があるし。

661 名前:デフォルトの名無しさん [sage] 投稿日:04/11/24 03:24:30
VアプリをEZ向けに移植しようとしているんだけど
エミュだと遅すぎて途中で止まったようになってしまう
これ実機だとちゃんと動いてくれたりする可能性ある?


662 名前:デフォルトの名無しさん [sage] 投稿日:04/11/24 08:56:53
バグって止まってるんじゃないの?

663 名前:デフォルトの名無しさん [] 投稿日:04/11/24 09:37:26
653です。まずスプライトでやってみます。
PNG解析の方は、もう少し勉強してから挑戦してみます。
みなさま、ありがとうございました。


664 名前:デフォルトの名無しさん [sage] 投稿日:04/11/24 13:00:29
>>661
エミュの速さは
EZphase3対応エミュ>Vアプリエミュ>(壁)>配布中のEZエミュ
ですのでPhase3対応を探すかMIDP1.0のみで作ってVエミュで試すとイイデスヨ。
止まるのは大概メモリ不足関連。デカイのつめば少しはマシかも。

665 名前:デフォルトの名無しさん [sage] 投稿日:04/11/24 22:43:55
Vエミュ今月verUpしたやつはスピードも上がってるよ

666 名前:デフォルトの名無しさん [] 投稿日:04/11/25 13:59:54
Unofficial "MID Profile-1.0" API Reference
どこでみれるか教えてください。

667 名前:デフォルトの名無しさん [sage] 投稿日:04/11/25 15:25:41
VjavaP6で質問です。

例えば、画面の切り替えなどで徐々にブラックアウト。
現画像捨てて取得。
徐々にブラックイン(?)という処理で
ブラックアウトとブラックインしたいのですがどうすれば良いのでしょうか?

使えそうなメソッドとかUtilも無さそうです。

元々基幹系をやっていたもので畑違いのDisplayやらThreadに白黒させながらやってます。
どなたか教えていただけないでしょうか?

>>179の日本語APIリファレンスが開けないのですがこちらの在り処もご存知でしたら教えていただけないでしょうか?

668 名前:667 [sage] 投稿日:04/11/25 17:34:51
補足です。

元々はImageUtil.adjustBrightnessを使用して以下のようにやろうとしてみたのですが

                  //タイトル画像を描画
                  Image logoImg = Image.createImage("/logo.png");
                  for(FADEIN_COUNT = -5; FADEIN_COUNT < 1; FADEIN_COUNT++){
                     GraphicsUtil.drawRegion(g,
                                     ImageUtil.adjustBrightness(logoImg,FADEIN_COUNT),
                                     0,
                                     0,
                                     logoImg.getWidth(),
                                     logoImg.getHeight(),
                                     GraphicsUtil.TRANS_NONE,
                                     0,
                                     0,
                                     screenWidth,
                                     screenHeight,
                                     0,
                                     GraphicsUtil.STRETCH_QUALITY_NORMAL);
                      sleep(70);
                  }
 
IllegalArgumentException、Imageオブジェクトが immutableで出来ないと言われました。
もし宜しければmutableなImageオブジェクトとはどんなものかも知りたいです。

669 名前:デフォルトの名無しさん [sage] 投稿日:04/11/25 21:13:39
>>664
EZphase3対応エミュで動かしたらサクサク動いてます
どうやら(壁)にぶつかってたようで・・・
ただphase2.5機種の性能が(壁)より上であって欲しい

>>665
DrawImageだけだとEZphase3対応エミュはそのVエミュより倍以上はやい
でもVエミュの方が実機に近いし設定いじれて便利


670 名前:デフォルトの名無しさん [sage] 投稿日:04/11/26 02:15:13
>>668
immutable, mutableの違い
http://j2medevices.com/documentation/midp1.0/javax/microedition/lcdui/Image.html
adjustBrightnessが使えるの、今んとこV602SHだけっぽいよ。
詳細は新機能導入の手引き2004 P6型端末編あたり。

671 名前:デフォルトの名無しさん [sage] 投稿日:04/11/26 09:24:29
携帯のソフトを作っていたいのですが
なにかお薦めの本ありますか?


672 名前:667 [sage] 投稿日:04/11/26 12:05:20
>>670
有難うございます、ファイルやネットワークからの画像データからcreateImageした場合は
不変となってしまうんですね。

一旦オフスクリーンに書き出すなどしてみます。

673 名前:デフォルトの名無しさん [sage] 投稿日:04/11/26 15:04:32
>671 >>578

674 名前:デフォルトの名無しさん [sage] 投稿日:04/11/26 20:04:30
USBクレードル部分をJAVAで制御は出来ないの?
つなげたい機械があるんですが

675 名前:デフォルトの名無しさん [sage] 投稿日:04/11/27 01:24:40
>671
まぁ673の言う通り、Javaの基礎をきっちりやっておいて
それからこれかな つ ttp://www.amazon.co.jp/exec/obidos/ASIN/4774114707/qid=1101486261/sr=1-1/ref=sr_1_2_1/249-8361732-8347509

676 名前:デフォルトの名無しさん [sage] 投稿日:04/11/27 02:37:18
MIDP2.0の本とかある?
早くvodafone 3G メガアプリの予習したい。

677 名前:673 [sage] 投稿日:04/11/27 02:42:28
>>675
これくらいしか本がないってのがつらいんだよなぁ。

1. Javaの文法とか学ぶ
2. JavaAppletなどでイベント指向を理解する
3. MIDPの動作モデルを理解する
てな流れがいいと思うんだが、ここでいう3にあたる親切でいいサイトなり本なりがほとんどないし。
知ってるとこではこれくらい。http://www.saturn.dti.ne.jp/~npaka/midpbook/index.html

>675 の本はオレも持ってるが、これは比較的親切に書かれてる本だと思う。
でもちょっと古い(特に「J‐PHONE KDDI完全対応」が)

>676
オレは聞いたことがない。
洋書ならAmazonで「MIDP 2.0」で5つ引っかかったが。和書はヒットなし。
Javadoc片手に独学でやった方が早い気がする。

678 名前:デフォルトの名無しさん [sage] 投稿日:04/11/27 02:57:38
>>677
ありがと

679 名前:デフォルトの名無しさん [sage] 投稿日:04/11/27 06:50:57
902SHとかってMIDP2.0なの?

680 名前:デフォルトの名無しさん [sage] 投稿日:04/11/27 12:37:05
これから出てくるボダの3G機は、MIDP2.0だよ。たぶん。


681 名前:デフォルトの名無しさん [sage] 投稿日:04/11/27 15:55:25
質問します。
vodafoneでブラウザアプリが禁止されてるというか、認められてない理由を概略でいいのでご存じの方教えてください。
なんの理由なんでしょうか?
グーグルで自分で調べてみたしたが「ブラウザ アプリ 禁止 vodafone」とかの条件でやってみても
ブラウザアプリが禁止だという記事が出てくるだけでその理由にふれたものが出てきません

682 名前:デフォルトの名無しさん [sage] 投稿日:04/11/27 16:37:25
ブラウザアプリって何を指しているの?
定義は?

683 名前:デフォルトの名無しさん [sage] 投稿日:04/11/27 16:48:30
>>682
ttp://www.itmedia.co.jp/mobile/articles/0410/07/news006_2.html


684 名前:デフォルトの名無しさん [sage] 投稿日:04/11/28 01:32:37
>>682
http://ac-admin.appget.com/open_kiyaku.htm
アプリゲット・配布が禁止されている特定の種別のアプリケーション(Vアプリ作品)
によると
  「パソコンでいうインターネットエクスプローラのようなもの」
らしい。「ようなもの」ってなんやねん、というツッコミはアプリゲットの方へお願いね。


>>681
理由は表には出たことはないと思う。
auの「Opera搭載機でOpera経由のはパケット定額対象外」
てな形に持っていけるようにするための事前の釘さしだと思うけどね。

685 名前:デフォルトの名無しさん [sage] 投稿日:04/11/28 09:31:40
バールのようなもの
http://ja.wikipedia.org/wiki/%E3%83%90%E3%83%BC%E3%83%AB%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E3%82%82%E3%81%AE

686 名前:681 [sage] 投稿日:04/11/28 10:22:50
>>684
>理由は表には出たことはないと思う。
>事前の釘さしだと思うけどね。

返レスありがとうございまた。どうりでグーグルで出てこないはずです。
正々堂々と言えないvodafoneにとってのせこい理由が想像出来ました。
jigブラウザと定額を組み合わせるとキャリアのゲートウェイは大量のデータが通過するのに、利益はjigが持っていくというシステムを
容認することになり、キャリアにとっておもしろくないことは確かですね。
コンテンツビジネスへ収益構造の比重を移したい時に、よそに利益を盗られる、アプリが迂回路になることをふせいでいるのでしょうか
auは認めているといっても、無くなっていく運命のJava機だけで、他の多数のBREW機種では利用不可能ですから・・

687 名前:681 [sage] 投稿日:04/11/28 10:44:34
×ありがとうございまた。 ○ありがとうございました。

688 名前:デフォルトの名無しさん [sage] 投稿日:04/11/28 16:15:42
VappliP5です

オフグラフィックスに画像や文字などを描画してからまとめて回転したいのですが
drawRegionだと画像のみの回転しか行えず困っています
何か方法はありますでしょうか
無茶な方法でもいいので、分かる方返答下さい

689 名前:デフォルトの名無しさん [sage] 投稿日:04/11/28 16:55:13
>>686
jigブラウザの作者がインタビューで
「vodafondはブラウザアプリが禁止されているから断念した」」
って答えてたからね。

690 名前:デフォルトの名無しさん [sage] 投稿日:04/11/29 01:15:50
>>688
オフグラとセットでオフイメージ作ってるんじゃないの?とか言ってみるテスト。
Image offImg = new Image( width,height );
Graphics offGra = offImg.getGraphics();

691 名前:688 [sage] 投稿日:04/11/30 00:56:43
>>690
解決出来ました〜
ありがとうございました

692 名前:デフォルトの名無しさん [] 投稿日:04/12/01 11:45:20
当方VアプリでCGI連携を目論んでいるのですが、
Access denied というエラーが起こりCGIにアクセスができません、、、
どうすればいいんでつかね?

693 名前:デフォルトの名無しさん [sage] 投稿日:04/12/01 16:01:56
>>692
こう変えてみろ。
× どうすればいいんでつかね?
○ アドバイスを受けたいんですけど、まずどんな情報を示せばいいですか?

694 名前:デフォルトの名無しさん [] 投稿日:04/12/01 16:44:18
アドバイスを受けたいんですけど、この情報以外に何が要りますか?

使用言語:V-appli Emulator for JSCL 1.2.1 Ver.1.0.0
エミュレータ:V-appli_Universal_JSCL1_2_1[V-appli Emulator(JSCL1.2.1)ver.1.0
開発ツール:Sun ONE Studio 4 update 1. Mobile Edition


695 名前:デフォルトの名無しさん [sage] 投稿日:04/12/01 16:57:02
>>692
そのCGIはPCでアクセスできることを確認した?
あと、Port80以外はアクセスできません(vodaの制限)

696 名前:デフォルトの名無しさん [sage] 投稿日:04/12/01 17:13:35
>>692
>>80


697 名前:デフォルトの名無しさん [sage] 投稿日:04/12/01 18:35:24
>>692
MANIFEST.MFないしjadファイルに
  MIDlet-Network: Y
が記述されているか確認してみて。

698 名前:692 [sage] 投稿日:04/12/01 18:50:49
>>695
OKでした。
>>696
>エミュレータはプロキシを使用しない場合は通信したいサーバのIPとポートを
>JTProp.datのProxyとProxyPortに設定しておかないと通信できなかったような
>気がしたけど、試してみましたか?
通信したいサーバのIPは設定に組み込みましたが、
JTProp.datのProxyとProxyPortというのがよくわからないのでお教えください、、。
>>697
足しましたが無理です、、、。

ワイヤレスキットのエミュレータなら動くんですが、
V-appli_Universal_JSCL1_2_1だとはじかれてしまいます、、。

699 名前:デフォルトの名無しさん [sage] 投稿日:04/12/02 00:13:00
>>698
Apacheのerror_logもあぷしれ

700 名前:692 [sage] 投稿日:04/12/02 10:15:49
java.lang.SecurityException: access denied
だけですが、、

701 名前:デフォルトの名無しさん [sage] 投稿日:04/12/02 10:49:55
>>700
Apacheからjava.lang〜なんて出るかYO!?
おまいはもっかい
MIDlet-Network: Y
を付けるとこからみなおしてみ。付けてからビルドするんやで。
そんでCGIとか言う前にtxtをGETするとこからやってみ。

702 名前:デフォルトの名無しさん [] 投稿日:04/12/02 10:59:43
>>700
念のため聞くけどボーダフォンのMACSサーバーにアプリアップした?
コンテンツアグリゲーターのサーバーだと端末の設定によってSecurityExceptionが出るぞ。
コンテンツアグリゲーターによってはネット接続アプリすらアップできないけど。


703 名前:692 [sage] 投稿日:04/12/02 12:37:00
>>700
Apacheは使ってませんです、、、。
普通のサーバです。
Sun oneで、Midlet属性を付加するやり方が不明です。
jadファイルに無理矢理書き込んで実行とはまた違うんでしょうか?
>>
MACSサーバとは何でしょうか?
ググってもそれらしいものが、HITしないのですが、、

704 名前:デフォルトの名無しさん [sage] 投稿日:04/12/02 12:45:44
「普通のサーバ」?
ワケワカラン


705 名前:692 [sage] 投稿日:04/12/02 12:58:17
>>704
KCNのホームページスペースなんですけど、、、

706 名前:デフォルトの名無しさん [sage] 投稿日:04/12/02 16:01:41
新しいスターが誕生した予感(^∀^)わくわく

「Apacheじゃないです。KCNのホームページスペースなんです」Σ(゚Д゚)
「ホームページスペースなんです」「ホームページスペースなんです」「ホームページスペースなんです」
今後の展開から目が離せません

707 名前:デフォルトの名無しさん [sage] 投稿日:04/12/02 16:26:06
>>692
ttp://developers.vodafone.jp/dp/tool_dl/java/tech.php
Vアプリ開発ガイド[Tips編]のP61
Vアプリ開発ガイド[概要編]のP96〜P103、P127
をよく読んだ方がいいと思う



708 名前:デフォルトの名無しさん [sage] 投稿日:04/12/02 16:46:55
http://www.kcn.jp/index.xmlか?
ユーザーホームページは、
Apache/1.3.31 Server at www1.kcn.ne.jp Port 80
って出るから、Apacheみたいだが

なんつーか、要するに>>707だな

709 名前:692 [sage] 投稿日:04/12/02 19:31:00
>>708
そうですか、、、アパッチ、、、
ポートは80なので問題ナシですよね?
>>707
読みました、、、が、
jadファイルやマニフェストファイルへのmidlet属性の付加の仕方がわかりません。
マニフェストファイルへ書き加えても、ビルドしたあとのXMLファイルのようなもの(Sunoneで拡張子.adContent)を見る限り、
どうやらmidlet属性がうまく乗っていない状況だと思います。
P5エミュでテストを行ってまして、技術資料を見る限りではCGIまわりの設定は間違っていないと思われます。
よろしくお願いします。

710 名前:デフォルトの名無しさん [] 投稿日:04/12/02 21:48:28
InputStream in = Connector.openInputStream( "datafolder://"+ファイル名 );
ってやるとSecurityExceptionがでる。
で、jadの設定でなにか設定すれば動くと思うんだけど。
なんて設定すればいいか教えてくれ〜


711 名前:デフォルトの名無しさん [sage] 投稿日:04/12/02 22:00:44
SunONEを使ってる香具師がいない悪寒
あきらめてjadファイルを手で直せ

712 名前:デフォルトの名無しさん [] 投稿日:04/12/02 22:04:11
MIDlet-Application-Security: Y
これじゃいかんのかい?

713 名前:701 [sage] 投稿日:04/12/02 23:04:40
>>692
698-701の流れで703はオカシイだろ。知らんなら先言え。
あとApache、CGIの前にtxtで試せ言ったじゃん。どうせJADだと思ったけど。
J2MEのKToolBarならProject>Settings ...のUser Definedで
AddでkeyにNetworkで追加した後ValueにY書けばいいハズ。
オイラはKJX作成ツール使いで、SunOneとかエエもん使った事ねぇや。

>>710
EZかVか?つか、Vなら file://〜 だよな。
EZは勝手アプリでは例外無くアウト、って感じだと思う。

714 名前:デフォルトの名無しさん [sage] 投稿日:04/12/03 01:05:01
>>709 は、
サーバがMIMEタイプでapplication/Javaを吐かないのが原因とかそんなとこじゃないかな。
とりあえず、localhostにサーバ立てて実験しる。
サーバのたて方すらわからんのなら、HTTPConnectionするアプリはあきらめた方が無難だと思う。

715 名前:692 [sage] 投稿日:04/12/03 12:34:48
やはりSunONEユーザはあまりいなさそうですね、、、
画面はちらつくわ、、すぐ応答なしになるわ、、、orz

昨夜本屋などをかけずりまわり〜自転車のカゴがへっこんだりもしましたが、、
やっとマニフェストの追加のやり方がわかりました!!
JARレシピうんたらでJARファイルを細かく設定できるみたいです。
しかし、、、
アーカイブ時にmidletやらが入ってるjarとのつながりがなくなってしまい、
NoClassDefounderrorです、、、orz
とりあえず動かすとこまでがんばってみます!!

716 名前:デフォルトの名無しさん [sage] 投稿日:04/12/03 13:46:12
MIDPのソースコードってどこにあんのさ?

717 名前:デフォルトの名無しさん [sage] 投稿日:04/12/03 15:36:12
Phase3エミュを使ってる人にお伺いします。
EZアプリ Phase3のセキュリティA機能(データファイルの読み書き)は、
Phase3エミュで動作確認できますか?


718 名前:デフォルトの名無しさん [sage] 投稿日:04/12/03 21:40:41
>>716 ベンダーの名前くらい書いたら?
IBMのにはついてきた。Sunのにもあったような気もするが忘れた。

719 名前:デフォルトの名無しさん [sage] 投稿日:04/12/04 14:26:45
Voda P6型
Eclipseプラグイン公開されたね。
うれしいよ。


720 名前:デフォルトの名無しさん [sage] 投稿日:04/12/05 21:10:45
MIDlet-Network: Y
ってJAD側の属性なのにビルドで悩むもんなの?
もれも >>701 の言う通りtxtで試すべきだと思う
って遅いか・・・まあがんがれ

721 名前:692 [sage] 投稿日:04/12/06 15:25:50
eclispeに浮気しますた。
で、こんなエラーが出ます、、、
お助けを、、、
"起動中" 中に内部エラーが発生しました。
java.lang.NoClassDefFoundError: org/eclipse/ui/externaltools/internal/variable/ExpandVariableContext
com.zentek.eclipse.vappliemulatorplugin.LaunchConfigurationDelegate1.launch(LaunchConfigurationDelegate1.java:78)
org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:569)
org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:720)
org.eclipse.debug.internal.ui.DebugUIPlugin$6.run(DebugUIPlugin.java:892)
org.eclipse.core.internal.jobs.Worker.run(Worker.java:66)


722 名前:デフォルトの名無しさん [sage] 投稿日:04/12/06 21:49:58
アドバイスを全く聞いてないところが素敵すぎる
見事な亀感棒ですな

723 名前:デフォルトの名無しさん [sage] 投稿日:04/12/06 23:30:47
java.lang.NoClassDefFoundError

ってことだから調べれば出てくんだと思うわけです

ヒロツです

724 名前:692 [sage] 投稿日:04/12/07 12:42:46
おかげさまです。
ありがとうです。

725 名前:デフォルトの名無しさん [] 投稿日:04/12/07 15:37:54
ボダ3Gの開発キットって公開さてないの?

726 名前:デフォルトの名無しさん [sage] 投稿日:04/12/08 01:01:06
>>725
さてないよ

727 名前:デフォルトの名無しさん [] 投稿日:04/12/08 09:35:11
Vアプリを、eclipse3と、P6エミュでデバッグしたいんだが、
リモートデバッグでエミュに接続後、エミュが不定期に落ちる・・・
なんとかならんの?それとも俺だけ?

728 名前:692 [sage] 投稿日:04/12/08 16:38:36
P6端末では細い文字しか出力できないのですか!?
スタイルボールドにしても見た目が変わりませぬ、、、

729 名前:デフォルトの名無しさん [sage] 投稿日:04/12/08 21:30:48
>>727 P6エミュレータへのリモートデバッグはUEI仕様に準拠してるから
Eclipse3よりもWSDD(WCTME)5.7.1のほうがいいんじゃないかな。Eclipse2.1.3
ベースになるけど、P6プラグイン自体Eclipse2.1.3向けだしこっちのほうが
いい気がする。一見英語版ぽいけど中身は国際化されてる。
http://www-6.ibm.com/jp/domino02/NewAIS/aisextr.nsf/ByLetterNo/SWA04114?OpenDocument&ExpandSection=1&highlight=0,IBM,workplace
体験版
http://www14.software.ibm.com/webapp/download/product.jsp?s=p&id=DVDE-634P22
通販
https://www.airbitway.com/meng/cps.php?site=airppcpc&req=131_01_01&CID=3AP007002

730 名前:デフォルトの名無しさん [sage] 投稿日:04/12/08 21:33:51
>>728

実機で見てないけどエミュだと変わらないみたいだ
機種依存しそうな部分だから気をつけたほうが良いかと


731 名前:デフォルトの名無しさん [sage] 投稿日:04/12/08 23:30:20
設計でおしえてください。
基本的にCanvasで画面展開するアプリを作ろうとしているのですが、
メールアドレスの入力をしてもらう必要があります。
この部分だけ、Formを使わないといけないのでしょうか?
Canvasに入力欄を作ることはできないでしょうか?

今はMIDletを制御するだけのクラスと、Canvas拡張クラスで作っています。
画面展開などはCanvas拡張クラスのPaintにパラメータを渡すことで済ませています。


732 名前:デフォルトの名無しさん [sage] 投稿日:04/12/09 02:18:01
MIDP2.0に対応しているプロファイルってどれ?VアプリだとP6以上?Phase3はMIDP1.0だよね?

733 名前:デフォルトの名無しさん [sage] 投稿日:04/12/09 05:07:35
>>731
MIDP1だけだと、TextField/TextBox使うしかないね。
もしくは、Canvas上でFepまで作ってしまうか。

>732
3Gから。っっっと思う。
少なくとも一般にはまだ公表されてないハズ。

734 名前:727 [sage] 投稿日:04/12/09 17:52:59
>>729
サンクス。
でも、とても買えないので、eclipse2にボーダのプラグインを使う事にしました。

735 名前:デフォルトの名無しさん [] 投稿日:04/12/10 16:15:27
アプリゲットのテストサーバーにアップロードしてるんですが、
"ADFの内容に問題があります。"
とはねられてしまいます。
jadはKToolbarで作ったものです。
どこがいけないのでしょうか?

MIDlet-1: Resident, Resident.png, Resident
MIDlet-Jar-Size: 253426
MIDlet-Jar-URL: Resident.jar
MIDlet-Name: Resident
MIDlet-Resident: Y
MIDlet-Vendor: Me
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0


736 名前:デフォルトの名無しさん [sage] 投稿日:04/12/10 17:48:47
>>735
Venderが短すぎる・・かな?3か4バイト以上じゃなかったっけ?

737 名前:デフォルトの名無しさん [sage] 投稿日:04/12/10 18:44:55
アップロード審査通知 というメールに内容が書いてありました。
「JARのファイルサイズが、制限の204800バイトを超えています。」
でした。
stubclasses.zip の中身を削除することってできるんでしょうか?


738 名前:デフォルトの名無しさん [sage] 投稿日:04/12/10 22:06:05
>>737
stubclassesの中身削ってもアプリサイズは減らないよ。
・・まさかjarに同梱しちゃってるの?

739 名前:デフォルトの名無しさん [sage] 投稿日:04/12/10 23:41:26
jarにstubclasses.zipを同封しようとしているやつがいるのか。
世の中ひれーな、おらワクワクしてきただ。

740 名前:デフォルトの名無しさん [sage] 投稿日:04/12/11 21:07:41
>>732

VFXとか言う聞き慣れないプロファイルらしい。
P6とかと根本的に違う物なヨカーン。



741 名前:デフォルトの名無しさん [sage] 投稿日:04/12/12 00:27:00
>>738, 739
KToolbar の作る
C:\WTK21\apps\Project\lib\
にstubclasses.zipを置いてビルドすると、
できたjarの中に入ってます...。
stubclasses.zipで検索しましたが、扱いについての説明は見つかりませんでした。

ばかな質問かもしれませんが、どうしたらよいのでしょうか?
よろしくお願いします。


742 名前:739 [sage] 投稿日:04/12/12 12:57:48
オレはKToolbar使ってない。

outputというフォルダ内にpreverifyしたファイルがあるとして、
MANIFEST.MFを同封する場合のコマンド
jar cfm appName.jar MANIFEST.MF -C output .

stubclasses.zipは、中に宣言だけの各クラスファイル(JSCLライブラリ)が入ってる。
ケータイやエミュは、そこで宣言されたクラスをVM内部に持っている。
だけどJ2ME標準のライブラリではないため、
コンパイルを通すためにstubclasses.zipをclasspathに追加するという使い方をする。

743 名前:738 [sage] 投稿日:04/12/12 16:50:41
>>739
確かにKToolBarには追加する機能なかった気がする。
基本は742の方法(参考書とかも確かこう)なんだけど
オイラはkjx作成ツールを使ってる。詳細は綿100号さんのサイトで。
最近ではEclipse2.1.3とか使うのもオススメ。

744 名前:デフォルトの名無しさん [sage] 投稿日:04/12/12 16:56:44
KToolbar でできると簡単なんですけどね...。
KToolbar で作ったjarの中から、com、java、javaxフォルダを削除して、
新しいサイズをjadに書き込む...
というやり方ではまずいでしょうか? 一応エミュレーターでは動作しました。


745 名前:デフォルトの名無しさん [sage] 投稿日:04/12/12 17:30:45
そこでantですよ。
build.xmlは一回書けば大抵のプロジェクトで使い回せるし
(jarの名前なんかは*.propertiesに書いて外に出しておけばOK)マジお勧め。

746 名前:デフォルトの名無しさん [sage] 投稿日:04/12/12 19:42:31
ボーダでstubclasses.zip関係であれこれ試してるやつは前スレを一読することを勧める。
参考になるやり方がいろいろ出てる。

747 名前:738 [sage] 投稿日:04/12/12 23:16:19
>>744
とりあえず動けばマズイ事はないと思うけど、やっぱ面倒でしょ?
エラー見つかってソース書き換えるごとにそれって・・。
いかに楽するか、がプログラミングなので、面倒なのはツール任せ。
・・とか言ってantの用途をEclipseプラグインのガイド見て知ったオイラはヘボグラマ。

748 名前:739 [sage] 投稿日:04/12/13 02:20:39
やっぱ、これ面倒だよねぇ。
オレはMakefile使ってやってるけど、
今時Makefileじゃねぇ。。。

一応このへん組み込んで、ソース改変→make→jadのサイズ更新までやってくれるようにしてる。
ProGuardも組み込もうと思ったけど、これは断念した。オレの限界だ。
javapp http://denchu.jp/java/
javaupd http://homepage1.nifty.com/marukun/java/vapp.html

749 名前:デフォルトの名無しさん [] 投稿日:04/12/13 18:25:38
>>748
make使ってないけど、オレはbatでやっている。
で、商用だと同じアプリでも様々なバージョンを出力する必要があるので最近はスクリプトでmakeのようなことをやっている。
Javaなのにプリプロセッサは必須なんだけど、Eclipseとかで開発するとその辺ってどうなんだろう?


750 名前:デフォルトの名無しさん [sage] 投稿日:04/12/13 20:15:01
>>749 Eclipse? インクリメンタルコンパイルの前にプリプロセッサに
かけることも出来るし、いかようにも。

751 名前:デフォルトの名無しさん [sage] 投稿日:04/12/13 23:06:29
>>750
へー、そうなのか

漏れはmakeで全部やってるが、規模が大きくなってきたんでそろそろエクリプスに移行したい‥

752 名前:デフォルトの名無しさん [sage] 投稿日:04/12/13 23:50:40
最後はeclipse + make, eclipse + antなんだと思っていたけどそうでもないのかな?
googleで検索してみて。俺はeclipse + makeね。

make, antのスレもこの板にあるよ。

753 名前:デフォルトの名無しさん [sage] 投稿日:04/12/13 23:58:07
自分もbat。NTで拡張されたforとか使ってる。ppはbccとppinc。

>>750 プリプロセッサ使ってみたいからポインタ教えて。enumが使えるなら明日にでも乗り換える。

754 名前:デフォルトの名無しさん [sage] 投稿日:04/12/14 00:20:12
コマンドラインでant使ってる漏れは異端だったのかorz
ちなみにまずclにかけてプリプロセスした後一旦jarにまとめ、(ProGuardに掛けるには一度jarに
まとめないとめんどいのだ)それをProGuardにかけて削り混んだ後
再度リソースと一緒にjarにまとめて謹製ツールでkjxに仕立てるところまでフルオート。
ふる、ふる、ふる、むーーーん……いや、何でもないんだうわなにわqwdfんhl

755 名前:デフォルトの名無しさん [sage] 投稿日:04/12/14 05:40:56
わたしのしもべー

756 名前:デフォルトの名無しさん [sage] 投稿日:04/12/14 12:17:01
>>733
>3Gから。っっっと思う。少なくとも一般にはまだ公表されてないハズ
>>740
>VFXとか言う聞き慣れないプロファイルらしい。
>P6とかと根本的に違う物なヨカーン。

というとはiMonaのような一般投稿アプリでは、MIDP2.0対応にしばらく時間がかかりそうだということですか?
じつは携帯板の一部では簡単に対応出来るような電波飛ばしてる人がいるので
確かめたいのでお聞きしました。公式ではなく一般投稿アプリに関してです。

757 名前:デフォルトの名無しさん [sage] 投稿日:04/12/14 13:37:59
>>753
方針は次の二つのうちどちらか。
1. ビルド制御を全てantでやる。
2. ビルド制御を全てEclipseでやる。

1. はgoogleでeclipse antで検索すると出てきそうな気がするから
省略。Eclispeの自動ビルドと保存時のビルド実行をそれぞれ無効に
しておくことを忘れずに。

2. は、
http://help.eclipse.org/help30/topic/org.eclipse.platform.doc.user/gettingStarted/qs-96_non_ant_pjs.htm
http://help.eclipse.org/help30/topic/org.eclipse.platform.doc.user/gettingStarted/qs-93_project_builder.htm
あたりを参考に、JavaProjectのビルダー設定でコンパイルの
前処理・後処理を行う新規ビルダーをそれぞれ作成、
Javaビルダー(要するにコンパイラ)の前後に追加する。
デフォルトでは新規に追加したビルダーは自動ビルド時に
無効になっているから直しておくことを忘れずに。

1と2の折衷案として全部build.xmlに書いて、ビルダー設定に追加、
build.xml以外のビルダのチェックを外すというのもあり。




758 名前:デフォルトの名無しさん [sage] 投稿日:04/12/14 22:50:33
>>というとはiMonaのような一般投稿アプリでは、MIDP2.0対応にしばらく時間がかかりそうだということですか?

http://k-tai.impress.co.jp/cda/article/news_toppage/20667.html
によるとシャープとNECはJSCL、VFX両対応らしいので
P6とかも普通に動きそう。


759 名前:デフォルトの名無しさん [sage] 投稿日:04/12/15 01:03:32
Vodafoneから公式のEclipseプラグイン出たね。

760 名前:デフォルトの名無しさん [sage] 投稿日:04/12/15 02:15:39
>>757 あ、なんとなくわかった。ありがとうございます。
今仕事が立て込んでるので手が空いたらチャレンジしてみたいと思います。

761 名前:デフォルトの名無しさん [] 投稿日:04/12/15 18:18:50
Imageオブジェクトをスクラッチパッドに書き込むためにbyte配列にしたいのですが

どうやってbyteにすればいいんですか

762 名前:デフォルトの名無しさん [] 投稿日:04/12/15 18:24:53
あ、スレ的にはレコードストアって言ったほうがいいですね。。。

763 名前:デフォルトの名無しさん [sage] 投稿日:04/12/15 19:04:42
>>761
んー。それは難しいな。MIDP1.0の範疇では無理だね。
VodafoneのP5,P6アプリならGraphicUtil#getPixelを使って1ドットずつ読み込むしかない。
ただし激重いよ。
auはちょっと分からない。

764 名前:デフォルトの名無しさん [] 投稿日:04/12/15 19:10:25
そうなんですか。。。
適切なご解答ありがとうございます。



765 名前:デフォルトの名無しさん [sage] 投稿日:04/12/15 21:35:37
>>761
auにもPhase3でExtensionGraphics#getPixelがあるけどV同様激重。
しかも約2Byte/pixだからQVGAで150KB。デカ過ぎるし保存にも時間かかるよ。
情報は落ちるが一度jpgにエンコードして保存した方がいいかも(QVGAで約10KB)。
au,Vともカメラ操作できる端末ならミュータブルなImageをjpgバイト列にエンコ可能なはず。

766 名前:デフォルトの名無しさん [sage] 投稿日:04/12/16 13:41:07
http://pcweb.mycom.co.jp/news/2004/12/16/006.html
オープンソースのJava開発環境「NetBeans IDE 4.0」正式版が公開


NetBeans 4.0では、モバイル機器用開発キットのJava 2 Platform Micro Edition(J2ME)と、
8月に公開の第1ベータ版では非対応だったJava 2 Enterprise Edition(J2EE)にも対応。
モバイル機器からWebアプリケーションまで、広範なプラットフォームが開発対象とされている。
前バージョンの3.6で全面的に書き換えられたIDEのウインドウシステムにも改良が加えられるなど、
更なる生産性の向上も図られている。


767 名前:デフォルトの名無しさん [] 投稿日:04/12/17 01:50:55
さかきけいさん、どこに行ってしまったのか…。
検索すると氏のページばかり表示されるのだが。

768 名前:デフォルトの名無しさん [] 投稿日:04/12/19 18:53:46
Graphics.drawArc()
などで透明度のある線を書くことができますか?


769 名前:デフォルトの名無しさん [sage] 投稿日:04/12/19 19:38:06
自分でアルファブレンディングするメソッド作るしかないんじゃないの?

770 名前:デフォルトの名無しさん [sage] 投稿日:04/12/19 22:56:40
>>768
難しいですね。
速度重視でないなら、バックスクリーンをバイト配列なんかで保持し、
自分で演算して、アルファブレンディングするしかないです。
・・・考えるだけでも嫌ですね(^^;

771 名前:デフォルトの名無しさん [sage] 投稿日:04/12/20 11:42:10
初歩的な、画面遷移で質問します。

main クラス、canvas1 クラス、canvas2 クラスがあります。
main で
Display.getDisplay(this).setCurrent(canvas1);
として canvas1 を表示します。
つぎに、canvas1 で
Display.getDisplay(main).setCurrent(main.canvas2);
としてcanvas2が表示されることを目論んでいるのですが、
main シンボルを解決できないとなってしまいます。

どうすればよいのでしょうか? お教えください。


772 名前:デフォルトの名無しさん [] 投稿日:04/12/20 12:31:34
>>771
mainの参照をcanvas1に渡してるか?

773 名前:デフォルトの名無しさん [sage] 投稿日:04/12/20 13:21:09
ありがとうございます。

やはり、
コンストラクタか何かで明示的に渡す必要があるのでしょうか。

main クラスをこのようにしたら、大丈夫かと思ったのですが。
public static main midlet;
public Main() {
  midlet = this;
  canvas2 = new Canvas2();
  Display.getDisplay(this).setCurrent(canvas2);
  ...
}


774 名前:デフォルトの名無しさん [] 投稿日:04/12/20 15:48:28
midletをMIDletインスタンスの参照にしてるなら、
getDisplay()のパラメータはMain.midletじゃないのか?

775 名前:デフォルトの名無しさん [] 投稿日:04/12/20 15:49:55
あ、main.midletな、スマソ

776 名前:デフォルトの名無しさん [sage] 投稿日:04/12/20 15:52:16
>>773 まともに答える前に確認しておくけど、
public static main midlet;
public Main() {
  midlet = this;
  canvas2 = new Canvas2();
  Display.getDisplay(this).setCurrent(canvas2);
  ...
}
コンストラクタがMainってことはクラス名がMainかな
と思いきや、midletの型がmainなのはなぜ?

777 名前:デフォルトの名無しさん [sage] 投稿日:04/12/21 00:09:40
>>774-6

ありがとうございます。

クラス名はMainで、main はMidletクラスの変数のつもりです。

実は、
J2ME/MIDP でケータイ IM をつくろう
http://sdc.sun.co.jp/news/200303/ktaijava.html
の中にある、
http://sdc.sun.co.jp/news/200303/improve030303.zip
ソースを真似してみたつもりなのですが...。


778 名前:デフォルトの名無しさん [sage] 投稿日:04/12/21 02:00:51
>>770
速度気にしないならgetPixelでピクセルごとに色取り出して選択色と加算しながら
始点から終点まで点を打っていくっていうのもアリだと思う。
drawArcとかの代わりにはならんかもだが、3Dでプリミティブに透過でつけて
通常のCanvas上に平行投影したらいけそうな気もする。

>>777
クラス名がmainが変数名なら
public static MIDlet main; だよ。
[修飾子] [修飾子] クラス(型)名 変数名 の順だ。
この時点でクラスと変数ごっちゃになってるから他(canvas1とか)も同じ事して
「シンボルを解決できない」のは当然だと思う。
何が言いたいかって言うと、「画面遷移以前の問題」。

779 名前:デフォルトの名無しさん [sage] 投稿日:04/12/21 11:26:41
>>777
まず、Javaを勉強しろってこった。OJTだけだと余計なところで
躓いて、結局非効率だ

780 名前:デフォルトの名無しさん [sage] 投稿日:04/12/21 15:21:04
>>778
777の返答は誤りでした。 そうではなく、
public static Main midlet;
の書き間違いでした。 キャピタライズしてなくて誤解を与えたかもしれませんね。
意図はそのまま、midlet が変数です。
javacは通るので、そこまでの間違いは犯していないつもりです。


781 名前:デフォルトの名無しさん [sage] 投稿日:04/12/21 15:31:24
改めて、777で挙げた例で質問させてください。
省略している箇所が多くあります。

/* メインクラス */
public class ImproveMIDlet extends MIDlet implements CommandListener{
  public static BuddyListCanvas listCanvas;
  public static ImproveMIDlet midlet;

  protected void startApp() {
    midlet = this;
    listCanvas = new BuddyListCanvas();
......

それから、各所でこのように画面遷移が行われています。
 ImproveMIDlet.setCurrent(ImproveMIDlet.listCanvas);

ここで、ImproveMIDletの参照が得られるのはなぜでしょうか?
どこで参照を渡しているかが見抜けません。

よろしくお願いします。

782 名前:デフォルトの名無しさん [sage] 投稿日:04/12/21 16:03:00
お前が書きミスしたくせに「誤解」とは偉そうだな。
ImproveMIDletの参照が得られるのではなく、listCanvasの参照が
得られるんだよ。それはpublic static宣言しているからだ。
同様に、midletの参照を得たけりゃ、ImproveMIDlet.midletでOK。
お前は最初で、mainしか渡してなかったじゃねーか。
それじゃどのmainか解らないから、シンボルが解決できない。
staticとして宣言してるメンバなら、クラス名.メンバ名でシンボル解決する。
それこそ、Javaの基本だろ。

783 名前:778 [sage] 投稿日:04/12/21 21:00:21
>>780,781
シンボル解決しなくてもjavacって通るっけ?

正直に言うとこのスレだけで「canvasの切り替えが出来ない」とかいう奴が2,3人いたので
それ読んだ上でのその質問なのか、というか、
読んでないと思うし、同様に理解してない雰囲気が文面から感じる。
普段ちゃんとソース書いてりゃココでそんなミスしない。

「〜をマネした"つもり"」で「省略してます」とか言われても予想できない。
けど、そんな複雑なのを参考にする意味があるカイ?簡単なのでためそうよ。
一番は自習だが、どうしてもってんならソース全部さらせ。

784 名前:デフォルトの名無しさん [sage] 投稿日:04/12/22 11:48:38
MIDletクラスにsetCurrentなんてあったか?
MIDletクラスとDisplayクラスを混同しているようでは、
>それから、各所でこのように画面遷移が行われています。
> ImproveMIDlet.setCurrent(ImproveMIDlet.listCanvas);
↑こういうのも信用できんわけだが。

785 名前:デフォルトの名無しさん [] 投稿日:04/12/22 16:05:26
質問します。
A5402S(au)でアプリを起動中に
KEYの処理を入れてないのにジョグダイヤルを回すと、
ジョグダイヤルの情報が残りその情報が終わるまで次の操作ができませんが、
いい解決策はないでしょうか?それともこれは内部的な仕様なのでしょうか?

786 名前:デフォルトの名無しさん [sage] 投稿日:04/12/22 16:54:27
>>785
ttp://hobby7.2ch.net/test/read.cgi/appli/1090494378/657

787 名前:デフォルトの名無しさん [] 投稿日:04/12/24 06:49:54
プロファイル:MIDP 1.0 or 2.0

質問1.現在実行中のJavaアプリケーション内から他のJavaアプリケーションを起動するにはどうしたらいいですか?
     DojaのIApplicationクラスにあるlaunch()メソッドみたいな奴があれば嬉しいんですが・・・

質問2.実行中アプリからブラウザを起動する(あと、できればブラウザからアプリを起動するってのもほしい)

788 名前:デフォルトの名無しさん [] 投稿日:04/12/24 07:36:06
http://game.2ch.net/game/kako/1007/10078/1007835254.html

789 名前:デフォルトの名無しさん [sage] 投稿日:04/12/24 21:17:24
>>787

>質問1.現在実行中のJavaアプリケーション内から他のJavaアプリケーションを起動するにはどうしたらいいですか?
>     DojaのIApplicationクラスにあるlaunch()メソッドみたいな奴があれば嬉しいんですが・・・
MIDP2.0(JSR118)ではそのような機能はサポートされていません。

>質問2.実行中アプリからブラウザを起動する
MIDlet#platformRequest()で可能です。

>(あと、できればブラウザからアプリを起動するってのもほしい)
これはMIDP2.0(JSR118)では、未サポートです。


790 名前:デフォルトの名無しさん [sage] 投稿日:04/12/24 22:20:25
>>789
うほっ
ありがとうございます!

791 名前:デフォルトの名無しさん [] 投稿日:05/01/08 15:07:47
質問です。
EZアプリでキー操作音を消すにはどうしたら良いのでしょうか?
もちろん「マナーモードにしろ!」ってのは無しで。。


792 名前:デフォルトの名無しさん [sage] 投稿日:05/01/08 17:40:15
>>791
平常時からキー操作音OFFにしておく。
アプリでの設定は不可。(メーカーが特別に作ってたら知らんけど)

793 名前:791 [sage] 投稿日:05/01/08 17:57:43
>>792
レスありがとうございます。
しかしながら、JAVAで設定できると思います。
幾つかのキー音無しのアプリがあったので。

794 名前:デフォルトの名無しさん [sage] 投稿日:05/01/08 18:38:19
現行機種だと出来るのかもな
大昔の機種は出来ないんだよね

単にBGMが鳴ってるだけだったりしてw


795 名前:デフォルトの名無しさん [] 投稿日:05/01/09 21:04:27
質問です。現在Vアプリの作成中です。
複数行のテキストファイルを1行毎読み込んで表示させたいんですが、
Vアプリの場合、BufferedReaderクラスのreadLine()メソッドってな
いんでしょうか?

796 名前:デフォルトの名無しさん [sage] 投稿日:05/01/09 21:46:59
なんかここ急に人居なくなったな
なっちは元気にやってるんだろか、最近見ないね

797 名前:デフォルトの名無しさん [sage] 投稿日:05/01/10 04:40:14
>>795
CLDC1.0+MIDP1.0+JSCL1.2.1にBufferedReaderは含まれません。

798 名前:792 [sage] 投稿日:05/01/10 11:43:28
>>791
うん、まぁ確かにあるのかもしれない。
公式のテトリスでマナー中でも音が鳴ってどうやったら出来るか疑問だった。
多分 DeviceController あたりを使うのだろうと思うけど一般に公開されてない。
ファイルの読書みたいに公式アプリのみで可能な事だと僕は理解してる。
もし一般アプリで音無しが有ったならその作者に聞いてみて。

・・って書いてしまったけど、もしこのスレで詳しい方いましたら補足・訂正お願いします。

799 名前:デフォルトの名無しさん [sage] 投稿日:05/01/12 19:14:40
Vなんですが、
java.util.Calendar#setTimeInMillis(long millis)
はCalendarインスタンスへの時刻設定で、
ひょっとして端末の時刻を変更することはできない?

HTTPアクセスして自動的に端末の時刻を合わせるなんてアプリを思いついたんだが、
できなさそう。

800 名前:デフォルトの名無しさん [sage] 投稿日:05/01/12 20:03:37
>>799
ひょっとしなくても、そのとおりです。
Systemには現在時刻を取得するメソッドはありますが、設定するメソッドはありません。

801 名前:デフォルトの名無しさん [sage] 投稿日:05/01/12 20:29:13
ん・ぱか工房さんのところにあるSizeUpdate.classを使用すると
jadファイルの日本語(UTF-8)が化けてしまうんですが、
文字化けしないようにできないでしょうか?

802 名前:デフォルトの名無しさん [sage] 投稿日:05/01/12 20:31:07
>>801
それくらいのツール、javaでさくっと作ればいいのでは?

803 名前:799 [sage] 投稿日:05/01/12 21:01:23
>>800
どもです。やはり無理ですか。
時刻合わせホントにめんどいんすよね、Javaから設定できれば楽なんですが。
いっそのことauに機種変・・・

>>801
jadupd
http://homepage1.nifty.com/marukun/java/vapp.html

804 名前:デフォルトの名無しさん [sage] 投稿日:05/01/12 21:32:43
>>801
Vodaのサンプル集にAnt Taskが入ってる。

805 名前:801 [sage] 投稿日:05/01/12 22:30:58
ありがトン

806 名前:デフォルトの名無しさん [sage] 投稿日:05/01/14 14:31:21
Vodafoneのビジネスデベロッパー用のアプリを作成しています。

0x系の待受けアプリを作成しているのですが、
週刊ゲーム&アプリLiveの
ダウンロード通知で"JResidentMIDletが必要"エラーが出てしまいます。
5x系のときは、このAPIを使用して作成しましたが、
0x系では、com\j_phone\midlet\ResidentMIDlet.class が存在しないために、
JResidentMIDlet を使用することができないと思っています。

どうしたらよいでしょうか?
よろしくお願いします。


807 名前:デフォルトの名無しさん [sage] 投稿日:05/01/15 05:13:20 ID:??? BE:43697276-
>>806
ビジネスが具体的に一般向けのやつとどう違うのかは知らんが、一般人でも見られるとこからの情報だと、
JSCL1.0ではそもそもResidentMIDletがないので、
DeviceControl#setTelephonyListenerとか使って
TelephonyListenerをimplementsしたクラスを登録するしかないと思う。

808 名前:デフォルトの名無しさん [sage] 投稿日:05/01/15 16:02:19
>>807
そうですよね。

もちろん、そのように作成したら、
"JResidentMIDletを使用して作成する必要がある"
と言われるのですよ…。

おかしいですよね。


809 名前:デフォルトの名無しさん [sage] 投稿日:05/01/16 01:12:58
JSCL1.2 emulaterで
Emulator boot-up timeout.
とでて落ちるのはなぜでしょうか?

810 名前:809 [sage] 投稿日:05/01/16 01:15:47
自己解決しました。
ttp://homepage1.nifty.com/marukun/java/vapp.html
ここによるとファイアーフォールが問題だったようです。

811 名前:デフォルトの名無しさん [sage] 投稿日:05/01/17 00:28:11
LZ77圧縮アルゴリズムに詳しい人いますか?
アプリ内で使いたいのです

812 名前:デフォルトの名無しさん [sage] 投稿日:05/01/17 08:15:57
アルゴリズム事典を買いなさい。必ず買いなさい
ttp://www.amazon.co.jp/exec/obidos/ASIN/4774117293/

813 名前:デフォルトの名無しさん [sage] 投稿日:05/01/18 07:28:31
どなたか知っている方がいれば教えて下さい。
Vアプリにて、3D表示するアプリを作っていまして、
現在はエミュレータ上で動作を確認したアプリを、実機にてテストを行っておりますが、
class ファイルと同じ場所にあるリソース「a.mbac」を読み込もうとすると、複数のエラーが発生してしまいます。

1.
f = new Figure("/a.mbac")
を実行すると、例外「IOException」。

2.
f = new Figure("a.mbac")
を実行すると、例外「java.lang.RuntimeException: Constructor: Could not create」。


なお、3Dデータは、以前にiアプリで作ったモノを流用しています。


814 名前:813 [sage] 投稿日:05/01/18 07:30:22
あと、同じ場所にある画像データは
img = Image.createImage("/0.png");
などで読み込めております。


815 名前:デフォルトの名無しさん [sage] 投稿日:05/01/18 18:13:03
>>813
mbacってアクションじゃないのか?

816 名前:一念発起 [sage] 投稿日:05/01/18 21:47:08
Vodafoneの携帯用のJavaアプリを作ってみたいと思うのですが、
右も左もわからず、どうやって開発環境を作ったものかもわかりません。

現在の私の環境は、
JDK1.5
Eclipse3.0.1
です。

V601T用のアプリを作りたいので、JSCL1.2.2をインストールしましたが、
この後、なにを導入すべきなのかを教えてください。
または、詳しい文献等がありましたらご紹介願います。


817 名前:デフォルトの名無しさん [sage] 投稿日:05/01/19 00:18:01
>>816
http://developers.vodafone.jp/dp/
とりあえず、ここにあるPDF読む。
それだけで、ビルドの方法はわかる。

ちなみに、自分で解決する能力がないなら、
資料と同じバージョンの環境を使うこと。

818 名前:デフォルトの名無しさん [sage] 投稿日:05/01/19 00:28:14
>>813

iアプリ用のmbacって,Vアプリで使えないんじゃなかったっけ?
Vアプリ用のmbac変換ツールを使って作りなおす必要があるとか
どっかに書いてあった希ガス

819 名前:816 [sage] 投稿日:05/01/19 00:42:19
>>817
それも、とりあえず片っ端から読もうと思って、最初に「概要」をダウン
ロードしてみたんです。
そしたら、冒頭に「CLDCとMIDPを熟知していることを前提とする」ような
ことが書かれていたので、読むのを断念しました。

それでもPDFにある通りにインストールを続けてたんですが、バージョン
の違いからか、どうも上手くいかなくなってしまい、困り果ててこちらに
お世話になったという次第です。

できることなら、いままでの環境を残したいと思い、私と同じ環境で開発を
進めている方の声でも聞ければと思ったのですが・・。
一度消さないとダメなんでしょうか?

820 名前:デフォルトの名無しさん [sage] 投稿日:05/01/19 04:01:38
>>819=816
あなたの場合は消さないとダメ。理由は>>817が言うとおり。

ここから先は余計なお世話になるが…
816はJava言語やオブジェクト指向についてもよく知らない様子だから、
アプリ製作以前にまずそれらを参考書とかで学んだ方がいいかもしれない。
今は多分Vアプリ開発資料のどれを読んでもチンプンカンプンだと思うから。
このスレでもことあるごとに出てくる言葉、それは「急がば回れ」。頑張ってくれ。

821 名前:816 [sage] 投稿日:05/01/19 09:58:44
Javaについては、全く問題はないかと言われれば自信はありませんが、勉強しました。
一応(ほんとに一応ですが)、実務経験もありです。

そこで「さぁはじめよう」と思い、 Vアプリ開発ガイドに目を通したら
「CLDCとMIDPを熟知していることを前提とする」とあったもので、少々面食らって
しまった訳です。

使い慣れたEclipseを使いたかったんですが、とりあえずは
・JDK1.3
・J2ME Wireless Toolkit
・JSCL1.2.2
だけでやってみようと思います。

疑問なのですが、皆さんは一番最初はどうやって始められたのでしょうか?
Java言語についての知識ははじめからあったのだろうとは思いますが・・。

あと、登竜門となるサイトや文献があったら教えてください。

822 名前:デフォルトの名無しさん [sage] 投稿日:05/01/19 10:53:44
Java:出始めのころアプレットを作った。その時ある程度覚えた
CLDC、MIDP:Sunが出してる資料を一通り読んだ
携帯アプリ:キャリアが出してる資料を一通り読んだ

あとは経験と勘と努力と根性
まともな実務経験があるなら、MIDPとVアプリの仕様を勉強すれば作れるでしょ

サイトはhttp://www.saturn.dti.ne.jp/~npaka/とか

823 名前:デフォルトの名無しさん [sage] 投稿日:05/01/19 12:43:49
>>821
vodaのエミュレーターが出たときに速攻で落としていろいろ実験した

824 名前:デフォルトの名無しさん [sage] 投稿日:05/01/19 13:41:39
>>816
とりあえず環境を整えて作ってみたいなら綿100号さんとこがお勧め。
ttp://homepage1.nifty.com/cotton100/ →Java(TM)アプリ はじめのいっぽ
議論とかはここかSINSEN http://www.sinsen.org/top.html のBBS。

JDKは1.5から大きく変化した(と思う)から、1.4か1.3の方がたぶん無難。
Eclipseは2.1.3でないとダメっぽい。(3.0.1で説明どおりやると実行時にエラー)
2.1.3と2.1.xの言語パックを使うといいよ。

オイラの経験は
Java: Web用のゲームアプレットの本一冊買って、5個分ぐらいのソース自分で打ち直し
MIDP: んぱか工房の人が出してる本買って(発行日くらいに)、5個分ぐらい(略。
で、その後ぐらいからサンプル改造しつつ理解していった。今も少し流用しながら。
まじめにオブジェクト指向についてとか勉強したのは後の話。
昔はそうでもなかったと思うけど、携帯アプリの制限がなくなって来たら
オブジェクト指向をキッチリ意識しながら書いた方が保守とか楽でいいと思う。

825 名前:デフォルトの名無しさん [] 投稿日:05/01/19 17:56:26
Vodafoneの新しい3G端末は、JSCLのAPI使っていると動かないね
SHやNは対応しているのかと思いこんでたけどだめだね
属性の設定キーでもあるのかな

今まで作ったVアプリも、JSCLで拡張された機能をはずして
動くようになったけど、これじゃ機種変更しなきゃよかった
個人にも、メガアプリの仕様やライブラリを
公開して欲しいな。無理かな?


826 名前:816 [sage] 投稿日:05/01/19 20:24:15
>>822,823,824
レスありがとうございます。
紹介していただいたサイトも非常に勉強になります。
なんとか「HelloWorld」と表示させることはできるようになりました。
要するに環境ができたというだけの話ですが・・。

で、今日はいろいろやっていて一つわかった事があります。
それは、JSCL1.2.2 は JDK1.5 では動作しないっぽいということです。
エミュレータを実行させてたら、1.4か1.3を使えというエラーがでました。

昨日インストールが上手くいかなかったのもそのせいでした。
やはり、初心者は初心者らしく素直に資料にあるとおりにやらなきゃダメですね。


827 名前:820 [sage] 投稿日:05/01/19 21:55:42
>>821=816
失礼しました。

>皆さんは一番最初はどうやって始められたのでしょうか?

Vアプリの前にiアプリ開発、その前にVC++での開発経験があった。
iアプリの時は簡単な本を1冊読んで携帯アプリの構造をつかんだら
VC++のアプリを移植していくようなイメージで試行錯誤。
キャリアが用意したドキュメント(いわゆる開発ガイド)はしっかり読んだ。
APIリファレンスは必要に応じて。

828 名前:デフォルトの名無しさん [sage] 投稿日:05/01/20 04:35:49 ID:??? BE:49939968-
オレは、最初は入門記事から入った。
今はないここ。http://jp.appget.com/pc/dev_tips/ (WebArchiveにもなかった)
で、挙動のよくわからんとこを理解するためにMIDP/JSCLのドキュメントを読みあさることになった。

とりあえず、MIDPについて慣れるところから始めるのがいいと思う。
Hello, Worldアプリをケータイ上で動かす手順まで理解したとこで、
PDA向けのMIDP解説でもいいから利用するのがいいと思う。

↓のドキュメントを手玉にとれるようになるまでは、JSCL拡張APIにはあまり手を出さない方がいいかも。
http://web.sfc.keio.ac.jp/~t03790kn/javadoc/MID%20Profile%20docs/index.html

829 名前:デフォルトの名無しさん [] 投稿日:05/01/20 11:17:59
hideNotify()って、いつ・どういうときに発生するんでしょうか?

830 名前:813 [sage] 投稿日:05/01/20 13:27:54
>818
遅レス申し訳ないです。
mdac 作成担当に変換データを作ってもらったら、素直に読み込んでくれました。
ご指摘ありがとうございました。

ただ、ひとつ疑問なのは、png データでは「/0.png」みたいに“/”をつけても問題ないのに
Figure などの3D系はつけると例外になるんだろう?
(そういう仕様だと言われれば、それまでなんですが…)。


831 名前:デフォルトの名無しさん [sage] 投稿日:05/01/20 16:22:47
>>830
APIの仕様策定者か実装者に聞くしかないのでは。
3D系はSunとは関わりないしね。

832 名前:816・821 [sage] 投稿日:05/01/20 17:24:15
皆さん共通して言えることは、ドキュメントをよく読むということですね。
自分は面倒くさがり屋なんで、子どものころからプラモデルとかも説明書を読まな
いで作ってしまうタイプなんですが、それじゃあイカンと。
精進します。

今日は Eclipse + Ant を導入しました。
快適ですね。
Eclipse上でコーディングからビルド、実行までできてしまうとは・・。
824さんの言う通り、Eclipse3.0.1 では実行時にエラーが出ました。
仕方なく、2.1.3 にダウングレード。

ここで、また疑問なのですが、
ビルドまで Eclipse でできるということはもう J2ME Wireless Toolkit は必要
ないということでしょうか?

あと、昨日からずっと探しているのですが、MIDP の日本語版のドキュメントって
ないのでしょうか?

833 名前:デフォルトの名無しさん [sage] 投稿日:05/01/20 19:31:22
Sunは出してなかったと思う
さかきけい氏のページにあったんだけど、繋がらなくなってるな
http://godwood.allnet.ne.jp/vioret/

ちなみにこんな感じだった
http://web.archive.org/web/20040113080358/godwood.allnet.ne.jp/vioret/midpapi/

834 名前:デフォルトの名無しさん [sage] 投稿日:05/01/20 19:59:53
さかきけい氏、どうしたんだろ〜

835 名前:デフォルトの名無しさん [sage] 投稿日:05/01/21 14:32:09
>>832
preverifyが必要なので、Wireless Toolkitに含まれるツールはいるよ。

MIDPのドキュメントについては、「英語を読め」と。
日本語訳もあったけど、抄訳なので。

836 名前:816・821・832 [sage] 投稿日:05/01/21 14:40:48
>>833
それです。私の求めていたものは。
わざわざご自分のWebスペースにアップしてくれたのでしょうか?
ありがとうございます。

それをローカルに欲しいのですが、どうにかならないものでしょうか。
Web巡回ソフトなどで取得を試みたのですが、どういうわけか取れませんでした。


837 名前:デフォルトの名無しさん [sage] 投稿日:05/01/21 16:25:59
>>836
あんた、ここ知らないの?
http://www.archive.org/

838 名前:836 [sage] 投稿日:05/01/21 17:07:07
>>835
Ant では検証は行われないということですか?
抄訳(かどうかはしりませんが)とはいえ、私が訳せば誤訳になりますゆえ。

>>837
知りませんでした。
たった今、ググって知りました。

839 名前:デフォルトの名無しさん [sage] 投稿日:05/01/21 20:37:15
Vアプリエミュにpreverify.exeもmidpapi.zip(stubclasses内)もあるから、
ホントに無くてもいいんじゃない?
でも他キャリアとかでは使うと思うし、別に持っておいて損は無いでしょ。

archive.orgは自分も知らなかったのでこの機に保存しときます。dクス。

>>838
BASE HREFタグ先のさかきけい氏のサーバがダウンしているので、ローカルで開かない。
この部分とBODY下のarchive.orgのコメントとJavaScript削除すれば一応見れると思う。
何とかして必要なページ全部DLして、J2ME(WTK104)のdocs/api参考に階層作ればOK。
あ、あとHRFF先がさかきけい氏のアドレスになってる部分は相対アドレスに。
少々面倒くさいけど、自分で英訳しない分はるかに楽でしょ?
いくつかarchiveに無いファイルがあるけど、そこは我慢。
まぁ、エンジニアなら英語ぐらい読めたほうがいいんだと思いますが・・。

EZLIBで、サーバが止まった件で、不意にとまったんだけど氏が忙しくて直せてない
っていう状況だとかニュース欄で書いてたような気がします。

840 名前:デフォルトの名無しさん [sage] 投稿日:05/01/21 23:27:00
iアプリとVアプリで3D関係に詳しい方教えて下さい。

iアプリで、PrimitiveArray と Figure を組み合わせた描画を行うアプリを作り、
とりあえずは思うとおりに動作しました。

今度はVアプリ用にソースを書き直したところ、Figure の座標がおかしいらしくてまともに描画されません(一応描画はされる)。
座標数値はすべてiアプリのものから変えていないのですが、問題ありでしょうか?

それと確認なのですが、iアプリで使用していた関数は、以下の要領で書き換えてやればVアプリでも
同じように動作するのでしょうか?

・PrimitiveArray → renderPrimitives で描画時に直接指定
・Graphics3D.setPerspective() → FigureLayout.setPerspective() // 視野角を指定して透視投影の設定
・AffineTrans.lookAt() → AffineTrans.setViewTrans()        // 視点座標への変換
・Graphics3D.setViewTrans() →FigureLayout.setAffineTrans()  // 視点座標へ変換した AffineTrans を設定する。


841 名前:デフォルトの名無しさん [sage] 投稿日:05/01/22 00:36:57
JSCL1.2のcom.j_phone.util.GraphicsUtil#getPixelについて質問です。
Canvas#paint(Graphics g)内で

g.setColor(0x0000FF);
g.fillRect(0, 0, getWidth(), getHeight());
int c = GraphicsUtil.getPixel(g,1,1);

g.setColor(0xFFFFFF);
g.drawString(""+c, 10, 10, g.LEFT|g.TOP);

とやると"255"が表示されると思うんですが、実行してみると"248"と表示されてしまいます。
getPixelでは正確な値が取得できないのでしょうか?





842 名前:841 [sage] 投稿日:05/01/22 00:58:21
自己解決しました。
ttp://homepage1.nifty.com/cotton100/jphonejava.htm
にのってました。

843 名前:デフォルトの名無しさん [] 投稿日:05/01/22 01:12:39
>>825
まじすか!
仕様が公開されるまで3Gに変えれんなぁ

844 名前:デフォルトの名無しさん [sage] 投稿日:05/01/22 10:13:10
Vアプリでポリモーフィズム使ってる人いる?
容量とか処理速度とか問題にならない?

Vアプリを外注したらif文だらけのコードがあがってきたんだが、
これって普通?

845 名前:デフォルトの名無しさん [sage] 投稿日:05/01/22 12:34:22
>>844
何を外注したんだよw

328 名前:デフォルトの名無しさん[sage] 投稿日:05/01/22 12:14:46
>>326
classファイル1つにつき数百バイトのオーバーヘッドがでるから、サイズの点で不利。

if〜else if〜else ifってするよりもif〜if〜if〜って書いたほうがバイトコードは小さくなるから、
elseが付いていないなら良い仕事だと思っていいよ。付いていた場合は並。

846 名前:デフォルトの名無しさん [sage] 投稿日:05/01/22 14:16:47
可読性を考慮したり、奇麗にまとめようとすると、サイズと動作速度の問題が出てくる。
最近はpoorな環境での経験がある人が少ないのかな。

847 名前:デフォルトの名無しさん [sage] 投稿日:05/01/22 15:17:35
>>845
50KBとかの頃ならともかく、今ぐらいの容量があるなら、もうelseまで削って
容量を稼ぐより、可読性を高めたほうがいいような気もする。

848 名前:デフォルトの名無しさん [sage] 投稿日:05/01/22 19:37:37
マルチみたいなので無視してもよいかと。

http://pc5.2ch.net/test/read.cgi/tech/1102844217/326
326 :デフォルトの名無しさん :05/01/22 10:12:36
iアプリでポリモーフィズム使ってる人いる?
容量とか処理速度とか問題にならない?

iアプリを外注したらif文だらけのコードがあがってきたんだが、
これって普通?

849 名前:デフォルトの名無しさん [sage] 投稿日:05/01/22 19:45:55
auもMIDP2.0採用してくれたらいいのに

850 名前:デフォルトの名無しさん [sage] 投稿日:05/01/22 20:39:25
同意。
勝手アプリがダメな上に移植も面倒、アプリのラインナップも乏しいBREWはとっとと去ね

851 名前:デフォルトの名無しさん [sage] 投稿日:05/01/23 01:01:24
protected synchronized void keyPressed(int keyCode) {
int action = getGameAction(keyCode);


852 名前:デフォルトの名無しさん [sage] 投稿日:05/01/23 01:05:13
すみません間違えて投稿してしまいました。
Canvasクラスにおいてクリアキーが押下されたときの処理をしたいとき、
どうすればよいのでしょうか?
ひょっとしてクリアキー、スケジュール/メモキーなどの区別はできないんですか?

protected synchronized void keyPressed(int keyCode) {
int action = getGameAction(keyCode);

}


853 名前:デフォルトの名無しさん [sage] 投稿日:05/01/23 01:08:59
>852
auだと、クリアキー押したとき、keyPressedの引数には0が入ってくるので、それで判断。
いきなりgetGameAction()に渡すと例外キタ━━━━(゚∀゚)━━━━ッ!!になるのでちうい。

854 名前:デフォルトの名無しさん [sage] 投稿日:05/01/23 01:35:01
>>845
>if〜else if〜else ifってするよりもif〜if〜if〜って書いたほうがバイトコードは小さくなるから、
そうなんだ。でもそれって実行速度は遅くなりそうだが・・・

855 名前:852 [sage] 投稿日:05/01/23 01:41:22
>>853
vodaのP5ですがクリア押したときのkeyPressedの引数は-2147483646となっているようですが、
この値で判断してしまってよいのでしょうか?

GameAction()に渡した後は0になりますがスケジュール・メモキーなどと区別がつかなくなってしまいます。


856 名前:デフォルトの名無しさん [sage] 投稿日:05/01/23 01:52:40
>>855
仕様外なので、機種依存です。

857 名前:852 [sage] 投稿日:05/01/23 01:56:40
>>856
機種依存ですか。
なるべくクリアキーは使わないほうがよさそうですね。

レスありがとうございました。


858 名前:デフォルトの名無しさん [sage] 投稿日:05/01/23 11:31:01
902shで 文字表示させるのにg.HCENTER|g.VCENTERを使うと表示されないのは仕様ですか?
g.LEFT|g.BOTTOMだと表示されるのに・・・


859 名前:デフォルトの名無しさん [sage] 投稿日:05/01/23 15:17:48
一般人には3Gの開発環境なんて手に入らないのでわからん

860 名前:デフォルトの名無しさん [sage] 投稿日:05/01/23 15:41:02
>>858
drawStringでVCENTERは機種依存だと思う。MIDPの本では使えないと書いてる。
EZの古いのでダメだった事有り。HCENTERは使えるはず。
ダメならフォント情報取得してズラシなされ。


861 名前:840 [sage] 投稿日:05/01/24 06:23:12
質問の仕方が悪かったのか、スルーされてしまったので、もう一度質問内容を変えて書き込みます。

現在、iアプリで動作していた3Dワイヤーフレーム横回転するアプリを、Vアプリに移植してます。
で、回転の部分でうまく動いてくれません。

このアプリではフレームの他にフィギアもくっついて回転するので、AffineTrans#rotationY() などの関数を使用せず
Vector3D の X & Z 座標を三角関数で計算させた後に、AffineTrans#setViewTrans() を行ってます。

iアプリではフレームとフィギアは中心座標を基準として横回転しているのに、
Vアプリではカメラ座標を中心としてフレームとフィギアが横に移動(自分の周囲を回転)してしまいます。

どうも、iアプリとVアプリでは視点か参照点の扱いが違うような気がするのですが、そんな事ってありますかね?
それとも、何か別の問題点があるのでしょうか?

どなたか、ヒントでも教えて頂けないでしょうか?


862 名前:デフォルトの名無しさん [sage] 投稿日:05/01/24 10:46:44
>>861
それ、フィギュアを回転させてるんじゃなくて、カメラを回転させてない?

863 名前:デフォルトの名無しさん [sage] 投稿日:05/01/24 15:19:47
>>861
iとかVの経験無いんだけど、カメラ動かして物体の周りから見ようとしたら、
物体中心を原点に持ってきて、視点を原点中心に回転させ、視線を原点向きに
する必要があると思う。別に回転中心は原点じゃなくてもいいけど。

物体そのものを回転させるとしたら、視点視線固定して
物体中心を基準に座標を回転させればいいんだけど、
Figureだけならともかく、Primitiveと合わせた物体中心を求める必要がある。
で、オイラは物体中心に回転させる方法シラネ(自作ならできるかも)。
全部Figureで作って、アクションで回転させるとかするしかないんじゃない?

864 名前:デフォルトの名無しさん [sage] 投稿日:05/01/24 23:57:43
>>863
いや、ローカルなマトリックスをかければいいだけだから
>>861
視点と方向が逆になってるだけじゃね?

865 名前:デフォルトの名無しさん [sage] 投稿日:05/01/25 12:03:50
Figureって3D座標系の原点以外に置けたっけ?

866 名前:デフォルトの名無しさん [sage] 投稿日:05/01/25 12:54:05
>>865
視点の方を動かす必要がある。

867 名前:デフォルトの名無しさん [sage] 投稿日:05/01/25 13:46:59
>>865>>866
メソッド無いけど
m03にx座標
m13にy座標
m23にz座標
で動かせる

868 名前:デフォルトの名無しさん [sage] 投稿日:05/01/25 15:01:52
>>861
iアプリの AffineTrans#lookAt() と、
Vアプリの AffineTrans#setViewTrans() では、第2パラメータの扱いが違うかも。

iアプリでは注目点を指定するが、Vアプリでは視線ベクトルを指定するように
なってるんじゃないかな?

Vアプリは作ったことがないんで、BREW版のAPIからの推測だが・・・

869 名前:861 [sage] 投稿日:05/01/25 20:29:45
>868
まじで!?
つうか、思い当たる部分が一杯ある…(汗)。

で、両方のJavaDoc 調べてみたけど…

Doja 3.0
position - 視点への位置ベクトルを指定します。
look - 参照点への位置ベクトルを指定します。
up - Upベクトルを指定します。

JSCL 1.2.2
position - 視点位置
look - 視線方向
up - 上方向

本当だ…、 視線“方向”じゃん(泣)。
という訳で、原因が分かりました。
862-868 の皆さん、ありがとうございました。

原因は分かっても、解決策はどうするかなぁ…。
とりあえずググッてみるか…。

870 名前:デフォルトの名無しさん [sage] 投稿日:05/01/26 01:14:11
ezのphase2とかでソフトキーが押されて離す瞬間を
取得することはできますでしょうか?

phase3ではキーの押下状態はgetKeyState()で取得できますがこれをphase3未満で
実現するには、ソフトキーの離された瞬間が欲しいんです。
CommandListenerでは押された瞬間しかわからないんで悩んでいます。


871 名前:868 [sage] 投稿日:05/01/26 03:01:29
>>869
視点(p0)と参照点(p1)の位置ベクトルがわかってるなら、視線方向ベクトルは
(p1-p0)するだけっしょ。

872 名前:デフォルトの名無しさん [sage] 投稿日:05/01/26 04:53:35
同じマスコットカプセルなのに仕様が違うのか
メソッド名が違う時点で変だけどw

873 名前:デフォルトの名無しさん [] 投稿日:05/01/26 11:01:44
MIDP APIの 日本語リファレンスを探しています。

以前、日本語化したサイトが存在したのですが、みれなくなってしまいました。


874 名前:デフォルトの名無しさん [sage] 投稿日:05/01/26 11:27:23
>>873
閉鎖しました。
がんばって英語を読んでください。

875 名前:デフォルトの名無しさん [sage] 投稿日:05/01/26 12:27:58
>>873
>>833

876 名前:861 [sage] 投稿日:05/01/26 13:30:39
>871
いや、全くその通りで。
レス書き込んで、いざ修正というところで気がつきました。
もう少し検証してから書き込むんだった…
(1週間ほど悩まされてきた現象だったので、解決の糸口を見つけた事で舞い上がってしまいました)。

// p - 視点位置
// l - 視線方向
// u - 上方向
setTrans(Vector3D p, Vector3D l, Vector3D u){
LWork.x = l.x - p.x;
LWork.y = l.y - p.y;
LWork.z = l.z - p.z;
trans.setViewTrans(p, LWork, u);
}

こんな感じで、関数作って対応させました。
本当に皆さんありがとうございました。

877 名前:質問です! [] 投稿日:05/01/26 20:28:52
こんにちは!

携帯用のJAVAアプリでボイスチャットを作成することって
原理上可能なことでしょうか?もし、そうなったら電話使わず
アプリを通してパケホとかで声のデータでやりとりできますよね?
せめて電話みたいなリアルタイムに近い快適さまでいかなくても、
5秒に1回ほど更新してサーバーに相手から来ている声のデータ拾いにいって
再生してってかんじで、トランシーバーみたいなかんじで
声のデーターのやりとりをサーバー経由で出来ないものでしょうか?
そういうアプリって作れます?

878 名前:デフォルトの名無しさん [sage] 投稿日:05/01/26 20:54:03
>>877
少なくとも現時点では、、、
1.音声データを(アプリに)取り込む方法がない

879 名前:質問です! [sage] 投稿日:05/01/26 21:09:58
>>878さん
さっそく、ご質問に答えていただき、ありがとうございます。
それではTV電話状態の音声抜きで画像のみとかは
可能ではないでしょうか?

880 名前:デフォルトの名無しさん [sage] 投稿日:05/01/27 01:29:42
何するにしても対応するAPIがあるかどうかだね。
ケータイでできることが何でもAPIとして用意されてる
ワケじゃないからね。
具体的に,このAPIとこのAPIを組み合わせて
こういうことできませんか?って聞いた方がいいのでは。
ボーダだと,APIの組み合わせ次第では審査通らない
こともあるし。位置情報+通信とか。アドレス帳取得+通信とか。

881 名前:デフォルトの名無しさん [sage] 投稿日:05/01/27 05:02:43
>>877
Vの場合だが、
・端末からサーバへの問い合わせ一方方向なので、定期的にチェックしにいくとしてもレスポンス的に不利。
・音声を出す仕組みは、現段階のAPIでは動的にSMAFデータを作る以外考えられない。
・音声を入力する仕組みは、音声認識させるしかない。音声認識パターン辞書をアプリないに持つ必要がある。

じゃ、がんがってね。

882 名前:デフォルトの名無しさん [sage] 投稿日:05/01/27 10:56:36
>>877
TV電話にしろ、今のカメラの機能ってさ
 カメラ呼び出し(アプリ中断)>端末のカメラ機能で撮影>(再開)写真取得
だからこれだけで10秒はかかるし、操作が面倒だと思うのでムリポ。

個人的な意見かもしれないけど、パケホだからって通信をしまくるのはどうかと思う。
もちろん自分で用意するサーバーの負担が大きくなるのもそうだが
現状では携帯端末とサーバーが直につながってるわけじゃなく、
キャリアのサーバにパケット送ってサーバ間でHTTP通信してるとかだと思うので
キャリアのサーバにも同じくらい負担が増える。ので、いずれ制限がかかる。
現状でもauのWINには1回/分の制限がある。さらに一日の総通信量にも。

もうちっと端末・通信環境が整うまで待つ必要があると思うよ。
で、その頃にはそれっぽいAPIも追加されてくるはず。
今はせいぜい文字チャットで1分強毎にチェックぐらいが精一杯っぽい。

883 名前:デフォルトの名無しさん [sage] 投稿日:05/01/29 00:29:14
ちょいと、Vアプリで質問です。
アプリの一時停止してから復帰すると、リソースから読み込んだ画像が「NullPointerException」になります。
まあ、ここら辺は仕様らしいんで仕方がないのですが、どのように復帰処理を実装するべきかと悩んでいます。

皆さんは復帰時に「NullPointerException」の対応ってどうされてますか?


884 名前:デフォルトの名無しさん [sage] 投稿日:05/01/29 00:49:15
>>883
そんなのなったことない。
ちなみに公式で出してるけど苦情もない。

885 名前:デフォルトの名無しさん [] 投稿日:05/01/29 23:11:59
iアプリとサーバーとをJavaで通信させたいのだが、
サーバー側のプログラムはservletを使うしかないのでしょうか?

886 名前:デフォルトの名無しさん [sage] 投稿日:05/01/29 23:37:24
iアプリはスレ違い

887 名前:885 [] 投稿日:05/01/29 23:41:41
ごめんなさい。

888 名前:デフォルトの名無しさん [sage] 投稿日:05/01/30 10:18:25
>>883
待ち受けで同じ現象でたことある
俺の場合は一時停止するときに全部のリソースを開放して
復帰時に作り直すようにしていた

ちなみに待ち受けの場合でも
折り畳み一時停止→着信で自動復帰
などの特殊ケースのときしかこの現象は起きなかったので
通常のアプリで起きているならstartAppやコンストラクタの処理を見直した方が早いかも

889 名前:デフォルトの名無しさん [sage] 投稿日:05/01/30 16:40:54
>>883
まじれす
ガッすばいい

890 名前:デフォルトの名無しさん [sage] 投稿日:05/01/30 22:29:41
VodaフォンP5ですがヒープメモリのサイズを取得することはできますか?

891 名前:デフォルトの名無しさん [sage] 投稿日:05/01/31 00:07:44
最終的にVアプリを作りたく、JAVAの勉強しています。
そこでつまづいているのはスレッドです。
表面上のことは分かっているのですが、本質的なことが何度本を読んでも分かりません。
たとえば、canvasを継承し、
Runnableをインプリメントしたクラスの
run()にrepaint()を書き込んだ場合、
二つのスレッドが同じ画像の描画を交互に描画しているのでしょうか?
自分は例えば、スレッドAで画像処理をさせ、スレッドBで通信の処理をさせたいのですが、
そういうことは可能なのでしょうか。

上記のようなことが理解しやすいお勧めの参考書があれば教えてください。

892 名前:デフォルトの名無しさん [sage] 投稿日:05/01/31 01:04:52
>>890
とりあえずCLDCのAPIを読んでみて欲しいのだが
RuntimeのfreeMemoryとかtotalMemoryとかを使えばエエ。

>>891
他にrepaintを連続的に呼んでるなら知らんけど、無ければrunのだけ。1つ。
あと、repaintは再描画を要求するもので、実際描画するのはメインスレッド。
携帯アプリでは通信中停止するっぽいからそれは無理(多分)。
通信こまめに分割して描画・通信を繰り返すしかないと思う。
とりあえず参考書の前にGoogleとかで記事探ってみるといい予感。

893 名前:デフォルトの名無しさん [sage] 投稿日:05/01/31 03:35:08
>>891
通信スレッドからrepaint()が呼ばれるのか?
通信中はそこでそのスレッドの処理が止まるんだから呼びようが無いと思うんだが

>スレッドAで画像処理をさせ、スレッドBで通信の処理をさせたい
可能だし、実際やってるアプリもある

894 名前:890 [sage] 投稿日:05/01/31 07:33:53
>>892
どもです。Javadoc見てみます。

895 名前:891 [sage] 投稿日:05/01/31 07:39:37
>>892
>>893
ありがとうございます。
やっぱり何もわかってませんね。
スレッドが理解できる迄
先に進みたくないので、
色々探してみます。


896 名前:883 [sage] 投稿日:05/01/31 18:58:02
>884,888-889
レスありがとう〜。

startApp でやっていた処理をコンストラクタに移して、
pauseApp が呼ばれたらフラグを立てて、
startApp で pauseApp がつけたフラグを調べてから、canvas 系クラスの復帰処理を実行するようにしました。

そしたら何故か直った…。
canvas 系クラスの復帰処理って、ただ return するだけの空メソッドなんだけどなぁ…。
もしかして、MIDlet 系クラスから参照をしてなかったから、最適化対象になっていたのか?

だれか、ここら辺に詳しい方います?


897 名前:デフォルトの名無しさん [sage] 投稿日:05/01/31 21:32:16
http://headlines.yahoo.co.jp/hl?a=20050131-00000026-zdn_m-sci
JSCLまたVerUpしそうだね。

898 名前:デフォルトの名無しさん [sage] 投稿日:05/01/31 21:34:32
startAppは初期起動時及び再開時に呼ばれるので
その辺が絡んでるだけだと思いますよ
初期のみにしなければいけないことがコンストラクタに移動したことで
解決したのではないかと思います

899 名前:883=896 [sage] 投稿日:05/02/01 10:56:45
>898
その通りでした。
一回の修正で何でもかんでもやろうとして、どこが解決に至った修正なのかが分からなくなってました
(static 宣言してあるクラス変数を、復帰時に null チェックしていたから回避出来るかと思っていました)。

コンストラクタはきちんと使わないとダメですね。
ご指摘ありがとうございました。


900 名前:デフォルトの名無しさん [sage] 投稿日:05/02/01 23:29:16
900様のおな〜〜〜〜り〜〜〜〜〜ぃ

901 名前:デフォルトの名無しさん [sage] 投稿日:05/02/01 23:45:58
EZアプリを作成しているのですが、拡張ストレージが使えなくて困っています。
エミュレータは無いし、実機はDoCoMoと違ってトレースできないしで原因がわからないのですが、
エラーは(下ソースの)1行目から出ている事だけはわかっています。
また、MIDlet-X-Storage-Sizeもkjx内に直接記述しました。
他に拡張ストレージに書き込む前にする事とかあるのでしょうか・・・?

public void writeStorage(byte[] buf) throws Exception {
StreamConnection con = (StreamConnection)Connector.open("storage:",Connector.WRITE);
OutputStream out = con.openOutputStream();
out.write(buf);
out.close();
con.close();
}

902 名前:デフォルトの名無しさん [sage] 投稿日:05/02/02 11:20:04
OutputStream out = null;
out = Connector.openOutputStream( "storage:" );

でいけないか?

903 名前:デフォルトの名無しさん [sage] 投稿日:05/02/02 17:09:39
>>901
原因が分からんことないでしょ。例外投げっぱなしにしてるからじゃない?
try〜catch時のExceptionをtoStringしてCanvasにdrawStringとかすればいいですよ。
ソース特におかしな所無いけど、「直接記述」の部分が気になる(どういう意味?)のと
単純に端末が対応してないとかってない?Phase3機でやってる?
あと エミュは探せばあるんじゃない?非公式に という発言はダメ?

904 名前:デフォルトの名無しさん [sage] 投稿日:05/02/02 19:43:19
Phase3エミュ一回一般公開してたとき偶然取れた。あれはいいね。普通のエミュじゃ遅すぎて話にならなかったからな。でもエラーは
try{〜}catch(Exception e){System.out.println(e)}
しとかないと終了しちゃうんだよね

905 名前:901 [sage] 投稿日:05/02/02 23:04:35
>>902
試してみましたがだめでした・・・

>>903
W11Hを使用しているので機種は問題ないと思います。

「直接記述」は公式サイトからKJX作成ツールのPhase3対応版を使用して作成。
できたkjxファイルをエディタで開いて「MIDlet-X-Storage-Size: 204800」と追記しました。
また、try〜catchを使って例外を拾ったところ「java.io.IOException: cannot use」
と返ってきたのでやっぱり記述の仕方が悪かったんでしょうか?
ビルドするたびに毎回記述しなきゃいけないし・・・。

906 名前:デフォルトの名無しさん [sage] 投稿日:05/02/02 23:46:06
>>905
MIDlet-X-Storage-Size: 204800 は*.jadに書くんだよ
あと200kもつかっていいんだっけ?

907 名前:デフォルトの名無しさん [sage] 投稿日:05/02/03 08:40:38
>>905
なんでわざわざそゆことすんの?
kjxツールでKDDI独自の記述するときはOther keywordでしょ?
kjxファイルの頭の記述はjadなんだけど、jarの方にもMFに同じ記述があるから
MFファイルの方をチェックしてるのかもしれないよ。

ちなみに拡張ストレージは200k(204800)まではOK。
もしこの書き方がおかしい(多すぎ)時は起動すら出来ないと思う。

908 名前:デフォルトの名無しさん [] 投稿日:05/02/03 23:34:57
Vアプリ作成サイトを探しても、詳しく書いてあるサイトが見つからないので困っています。どこか良いサイトを知っていますか?
僕はアプリを作るためにJAVA SEを少し勉強しました。コンストラクタ、メソッドなどのことは少しわかります。
もしよければ教えていただけますか?

909 名前:デフォルトの名無しさん [sage] 投稿日:05/02/03 23:42:30
>>908
http://developers.vodafone.jp/dp/

910 名前:901 [sage] 投稿日:05/02/04 09:06:12
>>907
Other keywordで設定したら例外でなくなりました。
ありがとうございました。

911 名前:デフォルトの名無しさん [] 投稿日:05/02/04 13:35:54
>>908
私もここのスレッドが800くらいのときに始めて、いろいろ叩かれながらも少しずつ
分かってきました。

909さんの指示する通り、ボーダフォンが出している技術資料などは見ておくといい
でしょう。
ただ、多分いきなり読んでも分からないと思うので、すこし慣れておく必要があると
思います。

現在、私がバイブルにしているサイトです。

J2ME工房
 http://www.saturn.dti.ne.jp/~npaka/sorami/index.html
 ( TOPページは http://www.saturn.dti.ne.jp/~npaka/kvm/kvm.html )

SINSEN
 http://www.sinsen.org/top.html

JavaDrive
 http://www.javadrive.jp/j2me/index.html
 ( TOPページは http://www.javadrive.jp )

912 名前:911 [] 投稿日:05/02/04 13:38:21
J2ME工房はさらに上のページがありました。
今知りました。

ん・ぱか工房
 http://www.saturn.dti.ne.jp/~npaka/index.html
でした。

913 名前:デフォルトの名無しさん [] 投稿日:05/02/05 13:02:28
あの、同期ってありますよね?あれって何なのですか?

914 名前:デフォルトの名無しさん [sage] 投稿日:05/02/05 15:42:51
国語辞典調べてから考えて

915 名前:デフォルトの名無しさん [sage] 投稿日:05/02/06 00:59:23
>913
お前と俺とは同期の桜

916 名前:デフォルトの名無しさん [sage] 投稿日:05/02/06 17:33:15
EZからVに移植しようと思っているのですがVアプリを公開するにはアプリゲットかバンダイに作者登録しなくてはならないようなのですが、どちらのサイトにも登録したい場合には二重登録すればよいのでしょうか?

917 名前:デフォルトの名無しさん [sage] 投稿日:05/02/07 01:31:17
>>916
うん。

918 名前:デフォルトの名無しさん [sage] 投稿日:05/02/07 04:00:57
分かりました。ありがとうございました。

919 名前:デフォルトの名無しさん [] 投稿日:05/02/10 14:35:42
CLDC には Comparable インターフェース や Arrays クラスがないようですが、
皆さんは、クラスの配列のソートはどのようにしているのですか?

やはり手でやるしかないのでしょうか?

920 名前:デフォルトの名無しさん [sage] 投稿日:05/02/10 15:38:45
時々同じ質問が出る。答えは「ソートは自力でやる」

921 名前:デフォルトの名無しさん [sage] 投稿日:05/02/10 19:21:39
スレッドを走らせてRuntime.getRuntime().freeMemory()の値を表示していくと
どんどん減っていって0までいくとまた増える、が繰り返されるんですが、
どうすればよいですか?

922 名前:921 [sage] 投稿日:05/02/10 19:24:14
あ、ひょっとして定期的にRuntime.getRuntime().gc();
でガベジコレクションしてやらないといけないんですか?

923 名前:デフォルトの名無しさん [sage] 投稿日:05/02/10 20:58:12
>>921
今の動作に問題なければ何もする必要ないよ。
gcで解決って問題ではない(実行されるとは限らん)が、多少は改善されるかもね。
スレッドが走ることでメモリが減らない、つまり動的にインスタンスを作らないのが一番。

924 名前:921 [sage] 投稿日:05/02/10 21:29:00
>>923
わかりました。ソース見直してみます。

925 名前:デフォルトの名無しさん [] 投稿日:05/02/10 21:46:33
省電力なVアプリってどうやって作るんですか?
電池を消費しないようにするテクニックなどがあったら教えてください。

926 名前:デフォルトの名無しさん [] 投稿日:05/02/11 02:12:46
>>920
やっぱりそうですか。
ソートくらいあってもいい気はするんですけどね。

クイックソートとか手で作るのだるいなぁ。

927 名前:デフォルトの名無しさん [sage] 投稿日:05/02/11 02:26:15
メモリのことを考えると、ヒープソートとかの方がいいんだろうか。
まぁ、たかだか数百個程度の配列なら、どんな方法でも大差ないか。

>925
アプリ上は走りっぱなしのスレッドをなくせばすむけど、
そうしたとしても省電力になるかどうかは結局VM次第になるような気がする。
バックライト制御して常に消した方が効果は大きいような。

>924
ガベコレで回収しきれなくなったとかガベコレ時にスレッドが一時停止して困るとかでない限り無視でいいと思う。
回収しきれない→ヒープメモリを動的に使わないようにする
一時停止で困る→ガベコレタイミングを考えてgc()を実行

928 名前:デフォルトの名無しさん [sage] 投稿日:05/02/11 17:41:08
>>925
描画を省くとけっこう違うよ。
あと、sleepだね

929 名前:デフォルトの名無しさん [sage] 投稿日:05/02/11 22:06:16
VodafoneのP5型には、動画の再生クラスとかないんですか?
リファレンス見たけど見つからなかったもので・。

930 名前:デフォルトの名無しさん [sage] 投稿日:05/02/11 23:17:56
>>929
FileUtilityのplayでネイティブ側で再生するしかないかな。

931 名前:デフォルトの名無しさん [sage] 投稿日:05/02/11 23:49:43
>>929
情報サンクス!
さっそく試してみます。

932 名前:929 [sage] 投稿日:05/02/12 00:05:45
む、エミュレーター上では、FileUtilityのplayで
動画が再生されるとこは見れないのですか?


933 名前:デフォルトの名無しさん [sage] 投稿日:05/02/12 00:40:19
「アプリが一時停止から復帰した」
っていう判定はどうやるんでしょうか・・。
タイトル画面とかで毎フレーム描く必要ないですよね。
でも、一時停止させてからアプリに戻ると画面真っ白でかっこわるいし・・。



934 名前:デフォルトの名無しさん [sage] 投稿日:05/02/12 00:59:40
ご、ごめんなさい。
>>638
にモロ書いてありました。失礼しました。

935 名前:925 [sage] 投稿日:05/02/12 02:10:18
>>927, >>928
バックライト制御とsleepは思いつきませんでした。
ありがとうございました。

936 名前:デフォルトの名無しさん [sage] 投稿日:05/02/13 20:47:52
なんだよ。こっちにあったのか。携帯アプリ板で必死に探したよ

937 名前:デフォルトの名無しさん [age] 投稿日:05/02/13 22:03:53
auのシューティングで、背景を宇宙(黒で青の星がたまに写る)から地上(よくあるなが〜い絵?をスクロールさせてるような)
に換えたいのですが、あれは本当になが〜い1枚絵をスクロールさせてるんですか?
どうやってやるんですか?

938 名前:デフォルトの名無しさん [sage] 投稿日:05/02/13 22:57:40
今気づいたのですが、Vodafone(P5型)でStorageConnectionを使い、
取得したメモリカードのパス「"/mc/"」は、メモリカードの直下ではなく、
ピクチャフォルダ等がある「データフォルダ」を指しているのですか?
そうなると、メモリカード直下にある、「SD_VIDEO」フォルダ等に
アクセスする手段はないということでしょうか?

939 名前:デフォルトの名無しさん [sage] 投稿日:05/02/14 00:07:21
>>938
うん。

940 名前:デフォルトの名無しさん [sage] 投稿日:05/02/14 00:24:22
>>937
画面サイズの画像を複数用意し、常に連続する2枚をスクロールすれば
繋がってるように見えるはず。別にもっと大きな画像でもつなぎ目で2枚書けばいい。
とりあえずMIDPというよりゲーム作成系の記事探してみれ。
携帯アプリでの注意点としてはメモリ容量とImageのサイズ制限。
機種によるけど1枚絵は無理だと思う。


941 名前:デフォルトの名無しさん [sage] 投稿日:05/02/14 00:38:44
>>939
ということは、SD_VIDEOフォルダ内の動画は再生できないと
いうことですか・・・。ああ鬱だ、氏のう。


942 名前:デフォルトの名無しさん [sage] 投稿日:05/02/14 11:26:33
>>937
RPGのマップみたいに、タイルを敷き詰めて1枚の大きい画面にしる。

943 名前:デフォルトの名無しさん [sage] 投稿日:05/02/14 17:27:07
String(byte[] bytes, String enc)
Stringクラスのコンストラクタで
VodafoneP5の場合、どのようなエンコード方式に対応しているのでしょうか?

944 名前:デフォルトの名無しさん [] 投稿日:05/02/14 19:27:33
EZアプリからのHTTPアクセスと
通常のブラウザからのアクセスとを
見分けることってできるんでしょうか?

945 名前:sage [] 投稿日:05/02/14 23:22:20
>>933
システムイベントから復帰する時にはpauseApp()を通るからこの中で再描画の要求を出します。

>>944
UserAgentを見れば確認できます。
UserAgentの機種名は携帯の型番とは違うので要注意です。


946 名前:デフォルトの名無しさん [sage] 投稿日:05/02/14 23:53:21
誰かさかきけい氏のMIDP APIの日本語リファレンスをうぷしてくれ〜!

http://web.archive.org使ってもindex.htmlのとこしか
見れません。


947 名前:デフォルトの名無しさん [sage] 投稿日:05/02/15 00:09:41
>>946
他人が作った物を勝手にアップしていいとでも?

948 名前:デフォルトの名無しさん [sage] 投稿日:05/02/15 00:18:29
>>947
やはりそれはいけませんよね・・・orz

949 名前:デフォルトの名無しさん [sage] 投稿日:05/02/15 00:52:48
公開してたものだし、いいんじゃなかろうか。

950 名前:デフォルトの名無しさん [sage] 投稿日:05/02/15 01:07:23
良い訳無いと思う。

951 名前:デフォルトの名無しさん [sage] 投稿日:05/02/15 06:22:47
>>943
たぶんShift-JISとUTF-8だけ

952 名前:デフォルトの名無しさん [sage] 投稿日:05/02/15 11:25:46
権利の話をすると、そもそも翻訳してそれを無許可で公開する時点で(ry

953 名前:>>943 [sage] 投稿日:05/02/15 13:54:29
>>951
Thx!!

954 名前:943 [sage] 投稿日:05/02/15 16:28:10
String(byte[] bytes, String enc)ですが、
"SJIS", "UTF-8", "UTF-16"が使用可能でした。
但し"UTF-16"の場合はbytes[0], bytes[1]はBOMになってないと駄目なようです。


955 名前:デフォルトの名無しさん [] 投稿日:05/02/15 18:38:16
EzアプリでURLEncoderを使いたいんだけど無理?

956 名前:デフォルトの名無しさん [sage] 投稿日:05/02/15 19:33:42
ここは親切な板ですね。携帯板なんかヒドイ・・・
んで、ez2のアプリってパソコンからは絶対無理?

957 名前:デフォルトの名無しさん [sage] 投稿日:05/02/15 20:50:25
>>955
com.jblend.net.HttpUrlEncoder

>>956
あまりにも、な質問が少ないだけだと思う。
アナタもム版なんだから落とす側より作る側の発言してくれYO。
ez2.cgiの事ならわざわざcgi通さなければイイだけの話。
〜/ez2.cgi?xxx.kjx > 〜/data/xxx.kjx

>>946
右下に無断転載禁止って書いてたしね。連絡が取れればあるいは・・。

958 名前:デフォルトの名無しさん [] 投稿日:05/02/15 21:35:15
>>957
URLに関してはそれでエンコードできるんだけど、データをポストするときに
フォームエンコードをしたいのにできなくて困ってる〜^^;どうやって
エンコしたらいい?

959 名前:デフォルトの名無しさん [sage] 投稿日:05/02/15 21:54:50
生のバイナリで送ったら?
わざわざエンコする必要ないでしょ

960 名前:デフォルトの名無しさん [sage] 投稿日:05/02/15 22:41:18
塚、忍者でタグつかってEZアプリ公開すんのって絶対無理ですか?
いろいろ探したんですが・・・

961 名前:デフォルトの名無しさん [] 投稿日:05/02/15 23:02:15
>>959
返答ありがとう^^
それでやってみたんだけど、受側のPHPがPOSTでデータがくるので
エンコされてると思うみたいでデータが壊れちゃうのよ。
どうしたらいい?



962 名前:デフォルトの名無しさん [sage] 投稿日:05/02/15 23:15:48
携帯Javaってnative宣言のメソッドは実装できるの?KVM/CLDCレベルの話で

963 名前:デフォルトの名無しさん [sage] 投稿日:05/02/15 23:53:27
>>961
新しめのPHPならphp://input
古いならHTTP_RAW_POST_DATAとalways_populate_raw_post_data

あとはググってチョ

964 名前:957 [sage] 投稿日:05/02/16 00:02:58
>>958,961
最初からそこまで言っておいてくれればもっと早く書けたんだが、
EZアプリからPHPに送る話ならSINSENの掲示板(1051)とかで出てたけど
リクエストデータのヘッダに明示的に示すといいらしい。
con.setRequestProperty("Content-type","application/x-www-form-urlencoded");
ちなみに963はPHP側で明示的に変更させない方法。

>>962
CLDCでは削除されてます。多分セキュリティ的な理由。

965 名前:デフォルトの名無しさん [] 投稿日:05/02/16 00:39:32
>>963,964
わかりやすい回答、ありがとうございました!
おかげで何とかなりました^^

966 名前:デフォルトの名無しさん [sage] 投稿日:05/02/16 01:24:43
>>946
普通に行けない?
何時の間にか行けるようになってたんだが…きのせいか?

ttp://web.archive.org/web/20040113080358/godwood.allnet.ne.jp/vioret/midpapi/

967 名前:デフォルトの名無しさん [sage] 投稿日:05/02/16 06:24:28
そこは行けたり行けなかったりするね。


968 名前:デフォルトの名無しさん [sage] 投稿日:05/02/16 11:41:20
自分で翻訳しろ、とかいってみる。俺はやったぞ。

969 名前:デフォルトの名無しさん [sage] 投稿日:05/02/16 16:50:55
DoCoMoのサイトでiアプリ用のAPIリファレンスをDLするといいかも。
もちろんそのまま使えるわけでなく、翻訳する手助けになるってことだよ。

970 名前:デフォルトの名無しさん [sage] 投稿日:05/02/16 21:43:14
ボーダです
ダウンロードしたファイルが同じ名前だと保存不可
という不都合が報告されたのですが
この場合直す名前とは
jad&jarの方でしょうか?
それともMIDlet-Name:の方でしょうか?

また調べてみたところV801SAの不都合ぽいのですが他の機種でも起こりうるのでしょうか?
他のキャリアでは聞いたことのない不都合でしたので

971 名前:デフォルトの名無しさん [sage] 投稿日:05/02/16 21:56:22
とりあえず両方直すことにした
うぉぉボーダの公開ってめんでぇーーー

972 名前:デフォルトの名無しさん [sage] 投稿日:05/02/17 05:20:08
>>970-971
MIDlet-versionをちゃんとかけっつーに。


973 名前:デフォルトの名無しさん [sage] 投稿日:05/02/17 12:28:05
AuのHPを見ると端末がBREW対応・Java非対応になってきています。
javaのEZアプリって今後利用できるんでしょうか?
(たとえばW21CAとか)


974 名前:デフォルトの名無しさん [sage] 投稿日:05/02/17 14:20:41
できまひんよ。
BREW上のJAVAVMの可能性も低いです。
勝手系はFLASHに流れると思います。

975 名前:デフォルトの名無しさん [sage] 投稿日:05/02/17 15:45:38
auはBREWへ移行、vodaはキャリアがゆっくり死につつある
新興勢力はまだまだ力不足

がんばれ。超がんばれ。

976 名前:デフォルトの名無しさん [sage] 投稿日:05/02/17 16:28:26
>>974 >>975
BREW上のVMの記事を見て「ひょっとして」と思いましたが、期待薄なんですね。
BREWはきついですね。本当にきつい。
二つ折り携帯の開閉をキャッチして、サーバーと更新する待ち受けアプリ
を作りたいんだけど、FLASHでは無理ですよね!?

977 名前:デフォルトの名無しさん [] 投稿日:05/02/17 17:54:00
com.j_phone.io.*

等のJPHONE独自のAPIを使ったアプリ作りたいんですが

batファイルかけやらEclipsでAntで実行しろやら
わけがわかんねーんだよ!!!!!


ということで手っ取り早くエミュレーターで実行できる実行ファイルを作りたい場合は
どうしたら良いんですか、教えてエロい人

978 名前:デフォルトの名無しさん [sage] 投稿日:05/02/17 18:08:20
>>977
コマンドラインからjavac、preverify、jarと実行して手動でやれば?

979 名前:デフォルトの名無しさん [] 投稿日:05/02/17 18:17:52
レスさんくすです

えっとですね

javac -bootclasspath C:\V-appli_SDK_121\lib\stubclasses.zip src\*.java

まずこんな感じでクラスファイルをつくればいいんですよね。。。。?

でpreverifyしなきゃいけないんですよね。。?

preverify -classpath c:\J-PHONE-SDK\stubclasses.zip src\test

みたいな感じでsrc直下にあるファイルに全部preverifyすればいいんですか?

で、これどっかから拾ってきたんですけど

jar cfm shisen.jar MANIFEST.MF -C output .

とかやればjarとMANIFESTが出来るんですかね。。。。

どうやってjarが生成されているのかがわからんのです

980 名前:デフォルトの名無しさん [sage] 投稿日:05/02/17 18:21:27
教えてクンいらね。
てか、そんなのすら調べられない奴が、言語を使えるとは思えない。
ビルド方法を解説してるサイトくらいいくらでもある。
読め!

981 名前:デフォルトの名無しさん [] 投稿日:05/02/17 18:30:12
よんでもよくわからねーんだよ!!!

やさしくおしえてくださいこのやろう!!!

982 名前:デフォルトの名無しさん [] 投稿日:05/02/17 18:34:40
やだ!!


983 名前:デフォルトの名無しさん [sage] 投稿日:05/02/17 18:35:42
読んでも良くわからない(読めない)なら、止めとけ。
この先もっと大量に調べなきゃならないことが出てくる。

984 名前:デフォルトの名無しさん [] 投稿日:05/02/17 18:40:48
おーしーえーてー!!!!

ほんと実行ファイルが出来る環境が出来るだけでいいんです!!

985 名前:デフォルトの名無しさん [sage] 投稿日:05/02/17 19:36:30
解説してるサイト、ガイドを読めないのに、僕らの説明なら読めるのか?
僕らが親切に教えた所で必要な手順変らないから説明内容は一緒だぞ?
とりあえず、どのサイト・ガイドを参考にして、どこまで出来たか、ぐらい書け。

僕のお勧めは綿100号さんのサイトで紹介してる、kjx作成ツール使う方法。
もしくはEclipseプラグインでもPDF通りにやれば出来そうなもんだが・・。

どっちにしろレスで説明できるほど薄い内容じゃない。
本当に分からない部分、極一部まで絞って質問してみれ。
今度1から分からないとかぬかすようなら完全無視。

986 名前:デフォルトの名無しさん [] 投稿日:05/02/17 19:39:42
誰か海外の端末のNokiaに詳しい方教えてください。Nokia7210で
サウンドを流そうとすると曲の最後まで再生されずに曲が途切れ
てしまいます。サウンドのデータ容量が関係してるみたいですが、
詳しい原因を知りたいので、詳しい方教えてください

987 名前:デフォルトの名無しさん [sage] 投稿日:05/02/17 19:45:57
ttp://developers.vodafone.jp/dp/tool_dl/java/tech.php
にある開発ガイド読みなさい

はい終了

988 名前:デフォルトの名無しさん [sage] 投稿日:05/02/17 19:46:42
>>987>>984

989 名前:デフォルトの名無しさん [] 投稿日:05/02/17 21:05:36
んー、ボーダフォンの開発ガイドを見てどうすればいいのだろ
う・・・。Nokiaのエミュレーターだと音は鳴るんですよねー。
実機で再生するとうまくいかないわけで。。。別のNokiaの端末
では同じ音でも再生されるわけで。。。誰か原因教えて

990 名前:デフォルトの名無しさん [sage] 投稿日:05/02/17 21:10:21
誰か教えてあげて。
こんな話題で次スレが始まると悲しいので。

991 名前:デフォルトの名無しさん [sage] 投稿日:05/02/17 23:54:51
>>989
ちがうよぅ>>998
そしてワカラン。スマヌ

992 名前:デフォルトの名無しさん [sage] 投稿日:05/02/18 01:29:38
次スレは(汗)?

それと質問。
auのQcelpを使って人の声を出すときに、どこかで自分の欲しい声を作ってくれるフリーソフトが有ったと思うんだが知ってる方はいらっしゃいませんか?
もしかしたらSMAFだったかも。
探しているのだが見つからない。

993 名前:デフォルトの名無しさん [] 投稿日:05/02/18 13:06:51
yasuさんとこのレースゲーム、逆コンパイルしてー

994 名前:デフォルトの名無しさん [age] 投稿日:05/02/18 23:16:30
勉強にとauのシューティングゲームを逆コンして見ているのですが、
当たり判定はどのように書かれてますか?他のはわかるのですが、当たり判定が全然わかりません!

995 名前:デフォルトの名無しさん [sage] 投稿日:05/02/18 23:27:44
勉強の仕方が根本的にずれてんだろ
どの道スレ違いだ

996 名前:デフォルトの名無しさん [sage] 投稿日:05/02/19 00:07:47
こ の ス レ は 何 を す る ス レ で す か ?

997 名前:デフォルトの名無しさん [sage] 投稿日:05/02/19 00:21:29
タイトル通りさ。
CLDC+MIDP の話をするところだろ。


>994
http://www.amazon.co.jp/exec/obidos/ASIN/4797327316/
これでも読んでろ。


998 名前:デフォルトの名無しさん [sage] 投稿日:05/02/19 00:43:15
eclipseでプリプロセッサ使ってるひといる?

999 名前:デフォルトの名無しさん [sage] 投稿日:05/02/19 00:50:23
にゃんにゃん!!!!!!

1000 名前:デフォルトの名無しさん [sage] 投稿日:05/02/19 00:51:26
1000