CLDC+MIDP+携帯電話用Javaスレッド part 3at TECH
CLDC+MIDP+携帯電話用Javaスレッド part 3 - 暇つぶし2ch1:デフォルトの名無しさん
04/08/06 22:21
J2ME CLDC+MIDPベースの携帯電話用Java(主にEZアプリ、Vアプリ)に関するスレッドです。
質問でも議論でも何でもこい、と。

前スレ:
CLDC+MIDP+携帯電話用Javaスレッド part 2
スレリンク(tech板)

過去スレ
携帯JAVAのスレッド
スレリンク(tech板)(DAT落ち)

--
Java一般に関しては:
【初心者】Java質問・相談スレ51【大歓迎】
スレリンク(tech板)

NTT DoCoMoのiモード携帯電話用Java(iアプリ)については:
iモード携帯電話用Java(iアプリ) Part 6
スレリンク(tech板)

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

2:デフォルトの名無しさん
04/08/06 22:22
調べものはまずGoogleへ
URLリンク(www.google.co.jp)

Java 2 Platform, Micro Edition (J2ME)
URLリンク(java.sun.com)
Reference Documentation(仕様書やAPIリファレンス)
URLリンク(java.sun.com)
J2ME Wireless Toolkit
URLリンク(java.sun.com)

EZアプリ技術情報
URLリンク(www.au.kddi.com)
Vアプリ技術情報(Vodafone Developers Support Site)
URLリンク(www.dp.j-phone.com)

3:デフォルトの名無しさん
04/08/06 23:43
>>1
乙。


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

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

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

6:デフォルトの名無しさん
04/08/07 01:57
>>2
URLリンク(www.dp.j-phone.com)

URLリンク(developers.vodafone.jp)

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


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

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

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

【初心者】Java質問・相談スレ51【大歓迎】
スレリンク(tech板)l50

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

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


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

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

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

12:6
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:デフォルトの名無しさん
04/08/08 09:00
textfileがパスを含んでないとして
"file:///ms/"+textfile
とやるんじゃない?

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

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

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

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

18:13
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:デフォルトの名無しさん
04/08/09 23:40
ダライアス難しいよなぁ。
easyでもきつい。
故意に死んで球かせぐ必要あり?

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

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

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

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

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

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

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

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


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

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


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

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


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

30:デフォルトの名無しさん
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:デフォルトの名無しさん
04/08/12 18:53
Vアプリの2Dスプライトって、任意の角度での回転や
拡大縮小はできるんでしょうか。
資料読んだところ、90度単位でしか回転できなさそうですが……。

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



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

35:33
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:デフォルトの名無しさん
04/08/13 18:22
HelloWorld.javaのソース貼ってちょ。

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


39:デフォルトの名無しさん
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:デフォルトの名無しさん
04/08/13 18:57
MIDPかなんかのパスがまちがっとる。
c:\J2MEWTK\lib\midpapi.zip
ほんとにこんなもんあるけ?

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

com
java
javax

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

44:デフォルトの名無しさん
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:デフォルトの名無しさん
04/08/13 19:26
今のエラーメッセージだしてみるとよか。
パス貼られても確かめようないぞなw

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

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


49:デフォルトの名無しさん
04/08/13 19:41
あう開発のちうい点

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

できたべ?>>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:デフォルトの名無しさん
04/08/13 19:42
エラー時に1.3.1のディレクトリが表示されるちうことは
デフォルトの環境は直したけどこのプロジェクトの環境は元のまま
ちうことだべ。

52:デフォルトの名無しさん
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:デフォルトの名無しさん
04/08/13 19:47
めにうの
<tool>のdefault env...が全体の環境、
<Project>のedit envがこのプロジェクトの環境だべさ。

もうちっとだ。ガンガレ


55:デフォルトの名無しさん
04/08/13 19:48
('A`)えー・・


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

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


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

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

60:デフォルトの名無しさん
04/08/15 06:41
Phase3の開発キットならここにあるぞ。
URLリンク(eseuta.mine.nu)

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

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

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

au Phase2.5です。

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


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

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

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

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


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

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

ありがとうございます!


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

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

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

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


74:デフォルトの名無しさん
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:デフォルトの名無しさん
04/08/18 21:34
うーん・・・
何のサンプル?
公式と手持ちの本のconnectionまわりのサンプルを
いくつかP5とc4のエミュで
試したけど失敗した例ないわ~

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

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

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

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

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


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

このへんとかに。
URLリンク(namihei.zone.ne.jp)


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

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

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


81:デフォルトの名無しさん
04/08/19 15:04
URLリンク(namihei.zone.ne.jp)
まぁこれあげといたから
これが動くかまず試してみるべし。
動くなら環境には問題ない、と。


82:デフォルトの名無しさん
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:デフォルトの名無しさん
04/08/19 15:52
>>82
プロパティじゃなくてメソッドだから
byte[] b = (tempI.toString()).getBytes();
じゃなくて?


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

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


86:デフォルトの名無しさん
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
04/08/21 09:43
>>86
StorageConnectionはJSCL1.2からなのでC4、P4型では使えないです。
データフォルダからデータを取得するのはResourceOperatorしか無さそうで、
ResourceOperatorのデータはMediaPlayerでしか扱え無さそう。
何か方法は無いでしょうか?

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


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

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

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

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

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


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

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

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

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

hc = (HttpConnection)Connector.open("URLリンク(localhost)");
os = c.openOutputStream();
os.write(data);
os.close();
res = hc.getResponseCode();
hc.close();

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

96:デフォルトの名無しさん
04/08/21 17:36
え、違うのか!?www

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

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

98:デフォルトの名無しさん
04/08/21 17:58
あああ、なんとなく納得。

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


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

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

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

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

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

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

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

104:デフォルトの名無しさん
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:デフォルトの名無しさん
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:デフォルトの名無しさん
04/08/23 20:46
>>105
TextFieldFormクラスの
Display.getDisplay(this).setCurrent(canvas);
のcanvasってどっから来るのさ。

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


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

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

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

111:デフォルトの名無しさん
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 = "URLリンク(localhost)";
 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: URLリンク(localhost)

と設定してあります。

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

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

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

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


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

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

ガンガレ。超ガンガレ。
URLリンク(do.sakura.ne.jp)

121:M
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:デフォルトの名無しさん
04/08/25 16:41
class TestCanvas …{


}

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

>>121
class TestCanvas extends …{

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

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

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

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

127:デフォルトの名無しさん
04/08/25 21:58
>126
>88-91

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

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

がんばれ

132:104
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:デフォルトの名無しさん
04/08/26 20:32
よくわからんがset~ってメソッドがあるんじゃないの?
APIリファレンスを熟読してくれ

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

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

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

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

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

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

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

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

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

139:デフォルトの名無しさん
04/08/28 00:19
VアプリがMIDP2.0準拠の1M容量になるという話。
ちょっとITmediaの妄想入ってるのかも。
スレリンク(appli板:294番)

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

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


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

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


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


144:なっち(○´ー`○)
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:デフォルトの名無しさん
04/08/28 12:54
>>143
Mobile 3D Graphics API for J2ME がオプション規格としてあるそうな。
J2ME Wireless Toolkit 2.2を落としてみるといろいろデモが入っているよ。

147:なっち(○´ー`○)
04/08/28 14:36
>>146
お~・・・・そうなのね
さっそく落として見ます


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

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

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

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

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

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

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

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

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

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

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




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

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

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

155:デフォルトの名無しさん
04/08/29 19:02
URLリンク(www.itmedia.co.jp)
にあるような JSRが導入されれば、互換性もある程度は保証されるかも。
でも、今年でる端末に互換性を求めるのは難しいかも...。



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

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


・・・ん?

158:155
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: URLリンク(localhost)

は書いてあります。

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

160:デフォルトの名無しさん
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:デフォルトの名無しさん
04/08/30 22:51
MIDlet-X-AllowURL-1: URLリンク(localhost)
この意味判ってる?

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

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

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

167:デフォルトの名無しさん
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:なっち(○´ー`○)
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:デフォルトの名無しさん
04/08/31 02:02
JavaHzで同じような時間帯にそっくりの質問がソース付きで投稿されてる
同じ香具師かどうかはわからんが
>>166 多分正解
>>168 ezplusらしい。ナイス勘

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

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


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

172:159
04/08/31 10:44
原因は

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

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

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

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

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


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

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


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

179:なっち(○´ー`○)
04/09/01 00:03
急になくなったりしたらピンチなのです。。。

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

日本語によるMID ProfileのAPIリファレンス
URLリンク(godwood.allnet.ne.jp)

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

181:なっち(○´ー`○)
04/09/01 01:08
んーそうだねぇ。そうしようかな。

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

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

183:デフォルトの名無しさん
04/09/01 21:00
URLリンク(www.eclipse.org)
携帯電話/PDA向けのJava環境に関して、MotorolaとNokiaがSunを
無視してIBMにすりよるらしい。しかし携帯でRCPするってことは
SWTだけじゃなくてJFaceまで動かすつもりなんだろうか。

184:デフォルトの名無しさん
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:デフォルトの名無しさん
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:なっち(○´ー`○)
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
04/09/02 22:02
Vアプリの方は、すぐ資料がみつかりました。

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

ezplusを続行できません

となって起動できません

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

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

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

195:デフォルトの名無しさん
04/09/03 01:05
ワロタ

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

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

198:デフォルトの名無しさん
04/09/03 13:46
>>197のこと?


199:デフォルトの名無しさん
04/09/03 16:13
>>196
スレ違いって分かってるなら面倒でもそっちのスレへ行って。
スレリンク(tech板)

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

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

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

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

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


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

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

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

206:なっち(○´ー`○)
04/09/03 23:37
オシゴト ゴクロウサマデス・・・

207:203
04/09/03 23:40
オナヂク ゴクロウサマドス
某ビューア5クラスドス

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

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

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

211:デフォルトの名無しさん
04/09/04 02:06
なるほど。


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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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


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

んなわけないだろ。

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

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

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

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

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

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


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


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

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

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

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

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


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

phase2.1

です

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

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

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

参考
URLリンク(www.gimlay.org)

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

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

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

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

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

URLリンク(www.au.kddi.com)

234:なっち(○´ー`○)
04/09/07 23:14
まちがいた(2)だね

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

236:デフォルトの名無しさん
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:なっち(○´ー`○)
04/09/09 01:54
>>236
例)のデータってどうやって入力してるの?
Phase3のエミュだとエスケープシーケンスで
普通に改行されて表示されるけどん。

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

238:236
04/09/09 08:30
>>237
テキストファイルから読み込ませてます。

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

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

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

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

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

242:236
04/09/09 21:41
>>239-241
返事遅くなりました。ありがとうございます。

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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


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

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

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

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


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

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

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

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

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

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

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

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

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

269:266
04/09/15 09:01:47
レスありがとうございます。

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

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

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

270:デフォルトの名無しさん
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:デフォルトの名無しさん
04/09/16 16:22:22
>270
基本的な枠組みはそれで合ってると思うんだが
何が問題なんだ?

272:270
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:デフォルトの名無しさん
04/09/16 22:30:53
JSR172ってもう実装出回ってたのか...

275:デフォルトの名無しさん
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:デフォルトの名無しさん
04/09/16 23:44:58
現在Vodafoneの待ち受けアプリを作成しているのですが
テスト中にどうも対応の仕方が不明な不具合が出てしまいました

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

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

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

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

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

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


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

281:277
04/09/17 23:15:23
一応

MIDlet-Resident: Y

MIDlet-Resident: S

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

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

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

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

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

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

285:デフォルトの名無しさん
04/09/18 21:31:08
EzPlusで、
URLリンク(www.crosslanguage.co.jp)を利用するプログラムを作ろうと思ってるのですが、
URLリンク(www.crosslanguage.co.jp)萌え&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:デフォルトの名無しさん
04/09/18 22:23:48
シューティングの背景のスクロールはどのようにしたらいいのでしょう?
画面を少しずつずらしていくものなのでしょか

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

288:デフォルトの名無しさん
04/09/18 23:40:02
>>286
DoCoMoの例だけど、参考になるはず。
スレリンク(tech板:258-262番)

289:デフォルトの名無しさん
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
04/09/19 10:52:14
>>283
例外処理をおろそかにしていたのでちゃんとやってみます

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

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

291:285
04/09/19 11:39:57
できました!
多謝 多謝!

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

293:286
04/09/19 18:45:05
>>288,289様
なんとかできそうです。
ありがとうございました。


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

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

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

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

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

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

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

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

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

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

300:デフォルトの名無しさん
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
04/09/21 09:35:02
>>300さん
ありがとうございます。
これって符号もオッケイなんでしょうか?
一応±32000くらいまでを扱うつもりなので。
shortなので、
tmp[0] = (byte)value; value>>=8;
tmp[1] = (byte)value;
でやってみます。
ありがとうございました。
#とはいえちょっとしばらくは手がつけられなかったり…

302:デフォルトの名無しさん
04/09/22 22:16:52
URLリンク(k-tai.impress.co.jp)

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

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

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


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

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


307:298
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:デフォルトの名無しさん
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
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:デフォルトの名無しさん
04/09/23 04:02:20
>>304
int が一番速い。

311:298
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:デフォルトの名無しさん
04/09/23 17:42:44
>>306
未定

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

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

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

315:313
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
04/09/25 09:16:39
13のソース適当にぶっこんでみたが動かんかった
もしかしてJ2ME Wireless Toolkit 1.0.4_01じゃ無理とか?
始める時にこのバージョンでやれって言われたのだが・・・

317:313
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:デフォルトの名無しさん
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:デフォルトの名無しさん
04/09/25 11:30:51
補足。
Byte.toString(byte[0]) …こんな書き方のものはない。

321:313
04/09/25 18:48:38
>>319
すまん漏れの頭悪すぎて分からん

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

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


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

classpathでstubclasses.zipを指定してないというオチでは?
>322も。
URLリンク(www.saturn.dti.ne.jp)

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

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

326:デフォルトの名無しさん
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:デフォルトの名無しさん
04/09/26 00:20:41
……うゆ?
コンパイルするソースもC:\j2sdk1.4.2_05\binに置いてるん?
それともカキコ用に適当なパス書いただけ?

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

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

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

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

入門記事
URLリンク(www.itmedia.co.jp)

332:デフォルトの名無しさん
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
04/09/26 02:00:59
URLリンク(homepage1.nifty.com)
ここに

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

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

334:デフォルトの名無しさん
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
04/09/26 02:40:49
両方のファイル開いてみると、midpapiに含まれてるファイルが全てstubclassesに含まれてない感じ。
だから、多分
stubclasses.zipにmidpapi.zipの内容が全部含まれてないからリネームだけじゃ駄目かと思う。
多分だから間違ってたら指摘よろ

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

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

336:334
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を使った方が
早かったりしますか?


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch