5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

CLDC+MIDP+携帯電話用Javaスレッド part 3

1 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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
http://www.dp.j-phone.com/dp/

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

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


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

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

8 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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
あう開発のちうい点

@パスは間違えるな!
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 :デフォルトの名無しさん: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の開発キットならここにあるぞ。
ttp://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はhttp://localhost/1.pngとなってます。
なのでhttpサーバー起動してます。
試しにブラウザからこのURLにアクセスするときちんと表示されます。

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

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


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

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


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


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


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("http://localhost/test.log");
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 = "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 :デフォルトの名無しさん: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のソースに手をいれました。
ソースは長いので
切り替え処理と関わりのない部分をはぶき、
ラウンジに貼り付けました。
自分のソースとの違いを
他の人がしてくれたレスを見ながら
考えてみてください・・・
ソースに自分なりにコメントをつけたりすると
理解の役にたちます。

ガンガレ。超ガンガレ。
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 :デフォルトの名無しさん: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の妄想入ってるのかも。
http://hobby6.2ch.net/test/read.cgi/appli/1093130008/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
ttp://www.itmedia.co.jp/mobile/articles/0408/27/news015.html
にあるような 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: http://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: http://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リファレンス
ttp://godwood.allnet.ne.jp/vioret/midpapi/

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
http://www.eclipse.org/org/press-release/aug302004ercpcb.html
携帯電話/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
スレ違いって分かってるなら面倒でもそっちのスレへ行って。
ttp://pc5.2ch.net/test/read.cgi/tech/1076511398/

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に類するメソッドは定義されていないと思う。
ついでにスレッド違いでゴンス。

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

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)ではアカンの?

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

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で、
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 :デフォルトの名無しさん:04/09/18 22:23:48
シューティングの背景のスクロールはどのようにしたらいいのでしょう?
画面を少しずつずらしていくものなのでしょか

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

288 :デフォルトの名無しさん:04/09/18 23:40:02
>>286
DoCoMoの例だけど、参考になるはず。
http://pc5.2ch.net/test/read.cgi/tech/1091286071/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
ttp://k-tai.impress.co.jp/cda/article/news_toppage/20667.html

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も。
http://www.saturn.dti.ne.jp/~npaka/kvm/javapress/coolskiers/support.html

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まで一括でやってくれるんじゃなかったっけ?
オレも使ってないから知らん。
一回書いたらほとんど直さないから、手書きでいいと思う。

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

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
http://homepage1.nifty.com/cotton100/jphonejava.htm
ここに

(補足)
なお、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を使った方が
早かったりしますか?

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

340 :デフォルトの名無しさん:04/09/26 13:14:36
>>339>>337向け

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

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

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

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

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

345 :322: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 :デフォルトの名無しさん:04/09/26 21:34:06
Vアプリ作成中で、レコードストアにデータをaddしたりsetして、
それをgetRecordして表示させようとしているのですが、
どうもうまく表示できません。

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

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


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

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

349 :347: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 :デフォルトの名無しさん:04/09/26 23:54:01
連レスすみませんsageをずっと忘れてました
あとMANメッセンジャーでご指導して頂ける方は指導希望と書いてくれませんか?

352 :デフォルトの名無しさん:04/09/26 23:56:35
>350

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

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

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

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

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

361 :346: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 :デフォルトの名無しさん:04/09/27 21:11:44
>>362
アプリAに終了命令出して、アプリBとかCに開始命令出せればいけるかも
でもレコードストアのデータとかは引き継げないから結構使いにくいかもね。

364 :デフォルトの名無しさん: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 :なっち(○´ー`○):04/09/27 23:40:26
MIDP2.0ではMIDletスウィートは
廃止されたような気がしたけどどうかな。

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

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

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


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

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

369 :デフォルトの名無しさん: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:04/09/28 14:50:28
今は
メソッド split(String) は型 String で未定義です
になってますね。さっきはパラメータに'|'を送ろうとしてたので、
Charだったみたいです。

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

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

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

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

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

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

377 :デフォルトの名無しさん:04/09/29 01:52:33
質問です

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

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

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


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

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

381 :377:04/09/29 17:19:18
380
実機で試してみますね。
ありがとうございました。

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

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

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

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

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

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

384 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/09/29 22:25:32
drawStringの引数Stringだけになってた(汗
x,y,アンカーを脳内で入れといてください。

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

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

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

勘違いだったらスマソ

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

389 :382:04/09/29 23:12:21
皆さんありがとうございます。

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

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

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

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

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

391 :デフォルトの名無しさん: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:04/09/30 15:42:34
訂正

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

393 :382: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 :デフォルトの名無しさん:04/09/30 21:01:53
画像サイズがデカイと無理です、多分。
ヒープの問題。

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

396 :382:04/09/30 22:02:46
読めてます。

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

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

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

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

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

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

402 :デフォルトの名無しさん: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:04/10/01 01:02:06
>>402
計算ニガテだけどがんばって計算してみますね…。
ちなみに表示させようとしてるのはPNG形式の画像です

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

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

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

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

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

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

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

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

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

410 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/10/01 05:31:06
>>410
>int spffile = spfdata;
だから、なんでbyte[]型をint型に代入しようとするのさ。

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

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

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

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

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

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


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

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

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

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

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

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

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

420 :デフォルトの名無しさん: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:04/10/02 00:07:13
ようするに初期化してない配列は(=null)で
空の文字列とか入れて初期化すると(="")ってことかな…

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

422 :デフォルトの名無しさん: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:04/10/02 02:16:02
なる。
ちなみに421に書いたやり方で解決できました。
かなりさんきゅうべりーまっち

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

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

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

427 :デフォルトの名無しさん:04/10/03 23:27:36
質問です

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

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

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

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

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

430 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/10/04 23:11:49
致命的エラー: クラスパスまたはブートクラスパスでパッケージ java.lang を検出できません。

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

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

433 :デフォルトの名無しさん: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:04/10/05 01:04:58
>>430
ソースまで書いていただいてありがとうです。
ちなみに4MのテキストファイルはSDカードに入れてます。

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


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

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

435 :433: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:04/10/05 09:38:51
あとでよく見ると\nも残っちゃってるな。まぁその辺は適当に・・。

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

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

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

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

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

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

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

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

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

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

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


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

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

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

445 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/10/09 02:07:58
>>447
setRecordとaddRecordの違いをふまえよ。

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

誰か追記してくれ

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

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

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

これで、読み込む際に

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

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

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

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

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

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

456 :447:04/10/09 19:05:24
if(getNumRecords()==0)で

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

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

457 :447:04/10/09 19:13:08
ごめん、追記です

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

458 :450: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 :デフォルトの名無しさん: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:04/10/10 00:08:53
447へのQ&Aとは直接関係ないカキコになるけど、一応フォローというか…

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

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

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

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

462 :450: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: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: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:04/10/10 02:42:19
>>464
>byte[] b = data.getBytes();の部分でシンボルを解決出来ません

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

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

466 :450: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:04/10/10 16:55:43
>>450
次から長いの貼るときはアップロード使いますね。

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

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

ソース書き直してみます

468 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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:04/10/11 01:47:36
配列b自身はnullにならない。ややこしい話は省略するが
if (b == null) を if (b.length == 0) として。

472 :450:04/10/11 02:18:47
すまん。混乱した。>>471は取り消し。

473 :447:04/10/11 02:44:05
>>450
いや、それで今の問題は直ったが。
でもまた次の問題が出てるわけだがな…。
自分で修正してみて手負えなかったら書き込みま

474 :450:04/10/11 03:07:39
自分が使ってるソースではやっぱ>>471のようにしてた。
>>472の書き込みはすみませんでした。

475 :デフォルトの名無しさん:04/10/11 04:13:57
>>468
サンクス。
ITMediaあたりでニュースになってなかったから気づかんかった。
まぁ先がないJSCLですが。

476 :デフォルトの名無しさん: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: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):04/10/11 19:21:32
>>447
だ〜か〜ら〜、e.toString()したらエラーの原因が分かるでしょや。
メッセージの意味が分からんならそれを調べるか聞くかしなっせ。
ソースが470+471のままなら(違うなら言ってね)、r=1の時何が起こってるか、
いっそ一行ごとにprintln使ってどの行まで行けてるか、ifでどちらに飛んでるか、
めんどうでも細かく調べてみることをオススメ。理解への近道。
やはりnullかどうかが面倒になってきそうだからもう一度459を奨めてみるテスト。
なんなら保存したいデータの変数が分かればsaveとroadメソッド書くよ。

あと細かいけど
・getRecord() なんてメソッドは無い。
・rsDate1て、日(date)は関係無いだろ。
・所々敬語を混ぜるくらいならいっそ全部普通語のほうがいいと思う。

479 :447: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:04/10/12 08:38:39
>>44
nullをdraw、int id、data、そんなことは分かってた。
今回の問題は
>getRecord()でデータがちゃんと読み込めてないみたいなの
でしょ?じゃあソコでe.toString()使おうとか思わなかったの?
使ってたけど何もメッセージが無いなら、一つだけ読んで終わるようにしてたんだろ。
ソース変わったなら言って、と書いたが何も無いってことはそのままか。
じゃあ470の最後のcatchでメッセージをださせてみて。

481 :447:04/10/12 13:24:01
>>480
すまんちょっと勘違い

getRecord()でデータがちゃんと読めてないと思ってたのは、
>>466のをID10まで作成するようにして使ってたのを途中で20変えたが既にレコードは存在するのでIDが追加されずに読み込もうとしたのがエラーの原因だった。

コンパイラもエラー吐かないしエミュでe.toString()使ってもNullPointerExceptionって出るしでgetRecord()でちゃんと読めてない物だと思ってた
けどそれは妄想でIDが追加されてないのが原因だったと・・・。

482 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/10/14 15:12:05
byteデータを数値に変換して比較したいのですが、直接intにbyteを入れても互換性のない型と出てコンパイルに出来なくて困ってます
調べてみるとintValueで変換出来ると書いてあったので試してみたのですがシンボルを解決出来ませんと出てしまいます。
byteデータをintに変換するにはどうしたらいいのでしょうか?

485 :デフォルトの名無しさん:04/10/14 15:39:24
すいません
byteデータではなく、byte[]でした
byte[] bytes;ってな感じに書いてますがint number = (int)bytesとしてもコンパイル出来ませんでした。

486 :デフォルトの名無しさん:04/10/14 19:49:22
>byte[] bytes;ってな感じに書いてますがint number = (int)bytesとしても
>コンパイル出来ませんでした。

あたりまえです。こちらへどうぞ。
【初心者】Java質問・相談スレッド54【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1096548618/

487 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/10/16 14:34:55
>>484
>>311


490 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/10/20 05:56:13
P5のエミュレータ
GraphicsUtil.drawRegion()が遅すぎて使い物にならなくて困っています。
どうにもならないのでしょうか?

495 :デフォルトの名無しさん:04/10/20 05:58:41
>>494
http://homepage1.nifty.com/marukun/java/vapp.html
> →GraphicsUtil.drawRegion()の処理がエミュレータでのみ著しく重いという事みたいです。

496 :デフォルトの名無しさん:04/10/20 14:22:41
P6のエミュでデバッグ情報がでなくなってるんだけど…
コレは以前のエミュのようにデバッグ情報を出すにはどうすればいいでしょうか。

497 :デフォルトの名無しさん:04/10/20 23:00:22
テキストボックスを使って数値を入力したいのですが、どこを探してもiアプリのtextBoxしか見つかりませんでした。
前にVアプリでテキストボックスを利用しているアプリを見たような気がするのですが、
Vアプリにはテキストボックスは無いのでしょうか?
参考になるサイトなどご存知の方居ましたら教えてください

498 :デフォルトの名無しさん:04/10/20 23:24:06
>>497
参考になるドキュメント→>>2
テキストボックスはプログラマ各々が自作するものなのか、用意されているものなのか。
といった携帯アプリを作るJavaの構成が理解できてないってこったな。

499 :デフォルトの名無しさん:04/10/20 23:42:36
>>497
http://godwood.allnet.ne.jp/vioret/midpapi/javax/microedition/lcdui/TextBox.html

500 :名無しさん: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: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:04/10/21 12:58:52
>>495
ありがとうございます。
実機では普通に動くのは知っていました。
エミュレータが遅すぎて困ってるんです。
正直デバックが苦痛です。
エミュレータで普通に動かすにはどのくらいのマシンスペックが必要なのでしょうか?
ちなみに私の環境は
P4の2.53GHz、メモリ512MB、OSは2000です。


503 :名無しさん:04/10/21 20:44:41
週間ゲーム&アプリLiveでは0x, 30x, 40xと5x, 60x, 80xに分けられていますが
どちらでも動作する50Kbyte未満のJAVAアプリ(jadはMIDlet-OCL: JSCL-1.0.1で定義)も
別々に登録される事になるんですか?


504 :デフォの名無しさん: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: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: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:04/10/22 02:58:35
>>507
> Pen4 2.4CGHz/1GB/Win2kSP4
+VアプリエミュP5型

あと、文章が横に長くなってしまってスマソ

509 :デフォルトの名無しさん:04/10/22 04:09:16
>>488
>TextBoxで気にせず素直にcommandActionでネイティブ呼び出すような処理を書いたら、
> 次同じソフトキーを押したときのイベントが起こりませんでした。
ここが問題点の核心なんだが2行目がイミフメでコメントできない

ソフトキーでのTextBox呼び出し処理自体は書いたことあって普通に動作してる

510 :488=495=499: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:04/10/22 05:40:48
>>506
サンクス。試してみマツ

512 :509:04/10/22 08:42:25
>>510 回避策は2つ思い浮かぶ。

1つめ。
keyReleased()で処理すればうまく行くと思うのであればcommandAction()を
keyPressed()とkeyReleased()に分解すればいい。
やりたい処理(ファイルアクセス)をcommandAction()ではなくkeyReleased()に書き、
commandAction()からはkeyPressed()とkeyReleased()を呼び出す。
これで見かけ上はソフトキー押下が数字キー同様のkeyPressed()/keyReleased()
に反応しているかのようになるのでドキュメントの条件を満たしたことになる。
…なーんて、これじゃ回避策になってないね。スマソ

513 :509:04/10/22 08:43:48
2つめ。これが本命の回答。
commandAction()内で重い処理をしていることがズバリ原因なので、その点を変更する。
システムからのイベント通知を受け取るcommandAction()/keyPressed()/keyReleased()
といったメソッド内では、画面描画、通信、ストレージアクセスといった重い処理を
してはいけない。
これらのメソッド内ではフラグ操作や、パラメータをとあるメソッドに送り付けるだけの
処理にとどめる。そしてメインの処理ループでそのフラグなり何なりを監視しておき、
反応があればメイン処理の中で、指定の重い処理を行うようにする。

>ネイティブ連携しない機能をcommandActionで呼ぶ場合は問題ないです。
このことはcommandAction()内で重い処理を行わないからこそと言える。

514 :490:04/10/22 15:21:02
>>506
確かにP4のstubclasses.zipにはcom.j_phone.amuseパッケージが
含まれておりました。
com.j_phone.amuseAPIを使用してみたいと思います。

回答いただきありがとうございました。

515 :504: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: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 :デフォルトの名無しさん:04/10/23 02:57:47
>もしくは、jarという拡張子だけど、実は中身はpngなどのリソースを単純にバイナリレベルでつなげただけのものとか。

これでしょ。拡張子に制限あるからね。

519 :デフォルトの名無しさん:04/10/23 03:16:25
midpで、左のボタン(通話ボタンの上にあるやつ)と右のボタン(電源ボタンの上にあるやつ)の定数コードってどれですか?

Canvas.GAME_A〜Canvas.GAME_Dのどれかだと思うんですけど

520 :デフォルトの名無しさん:04/10/23 03:17:59
>>517
そのページのソース確認してないんだけど、インナークラスはちゃんとjarに入れたの?あとpreverifyも

521 :519:04/10/23 04:23:59
すいません。自己解決しました。
Commandクラスを使って、個別に登録するんですねf^^;

522 :517:04/10/23 13:56:44
>>520
KToolbar 使ってるので、問題ないです。


523 :504:04/10/23 14:44:05
>>516>>518
イースで使われているjarを解凍しようとしてみるとエラーが出て無理でした。
どうやらバイナリレベルで繋げて、自前で解凍してるみたいですね
urlの部分をjar://file://mcとしてみましたがこれも駄目のようです。
開発ガイド9にdeflate圧縮データの復元とゆうものがあったのですが全体を展開するみたいなので使えない…。

そこで、バイナリレベルで繋げて自前で解凍する方法を使ってみようと思うのですが
どのように一つのバイナリにすればいいのやら…
解凍の部分はプログラムにxからyバイトまでが〜.pngとゆうファイルで…と記載されてるのでしょうか

524 :デフォルトの名無しさん:04/10/23 18:02:11
>>523
順に読み込むだけなら、
ファイル数
ファイルサイズ1
ファイル1
ファイルサイズ2
ファイル2
ファイルサイズ3
ファイル3
・・・
でいいんじゃね?

525 :デフォルトの名無しさん:04/10/23 19:09:32
>どのように一つのバイナリにすればいいのやら…

「結合」とかで検索!

526 :デフォルトの名無しさん:04/10/23 19:28:39
てゆーか……
画像は適宜結合してなるたけファイル数を減らして、
jarのファイルエントリを縮めるのは定石だと思ってたんだが
世間一般ではそういうことしないのか?orz

527 :504:04/10/23 19:32:04
>>525
VBやら関係無いの多いので時間掛かりそうですが探してみます

528 :デフォルトの名無しさん:04/10/23 19:32:15
>>523
各ファイルを読み込んで、それをObjectOutputではき出して、プログラム内で連結して、ファイルに出力して、jそれをar拡張子にしちゃえば?
そんな単純な話じゃないか・・・

529 :デフォルトの名無しさん:04/10/23 19:36:55
ここにある波紋アプレット
http://hp.vector.co.jp/authors/VA012735/applet/dropcol.htm
とてもきれいなんだけど、これを携帯に移植できるかな?
画像のピクセルを編集できないといけないみたいだけど。

530 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/10/24 01:06:35
>>529
秒間1フレームとかになるかもしれん。

533 :デフォルトの名無しさん:04/10/24 01:31:53
>>531
CLDC+MIDPにString#equalsIgnoreCaseはないけど。
toLowerCase/toUpperCaseはあるからそんなに苦労はしないと思うけど。

534 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/10/24 01:47:39
>>533
自力でequalsIgnoreCaseクラス作ってしまいました…。

536 :デフォルトの名無しさん:04/10/24 02:22:02
実機だとfillRect()がズレるって聞いたんだがずれてる?

537 :デフォルトの名無しさん:04/10/24 03:08:12
>>534
Nokia DCT4はjblendなのか??

http://secunia.com/advisories/12945/
アプリ起動直前にバイトコード検証が行われるんだけど、そこに脆弱性があって
ネイティブのコードが実行される恐れがあるとか

538 :デフォルトの名無しさん:04/10/24 04:30:23
>>536
そんなこと言ってるのは大方drawRect()と比べて幅と高さが1ドットずれるー
とか、リファレンス読み違えて勘違いしてる人なんじゃない?

539 :デフォルトの名無しさん:04/10/24 11:03:26
その脆弱性を突けば、もっと高度なJavaアプリが・・・

540 :デフォルトの名無しさん:04/10/24 12:46:06
>>539
可能かも?
だが、棒打のアプリは公開する時に解析されるから公開は無理

541 :デフォルトの名無しさん:04/10/24 13:14:36
>Nokia DCT4はjblendなのか??
JBlendもSunのリファレンス元に作成されているから同じ脆弱性が発生している。
Nokiaで同じ問題が出ている理由は、元が同じだから。


542 :デフォルトの名無しさん:04/10/24 13:21:34
複数のtxetをres内から配列にして読み込むには、どのように
すれば良いのですか?

調べても1つしか読み込む方法が見つからないので、分かる方
ご教授お願いします。

543 :デフォルトの名無しさん:04/10/24 21:05:55
>>542
自前でなんとかするしかないんじゃないかな?
\n区切りでString配列を返す関数とか作って。

544 :デフォルトの名無しさん:04/10/24 21:59:30
> JBlendもSunのリファレンス元に作成されているから同じ脆弱性が発生している。

なるほど。つーかずいぶん詳しいな

> Nokiaで同じ問題が出ている理由は、元が同じだから。

って事は、JBlendでは既に知られている脆弱性だったって事か?


545 :デフォルトの名無しさん:04/10/24 22:49:17
iアプリにあるホワイトアウト処理みたいなのを使いたいんだけど、
JSCLには無いようなので他の方法で同じ処理をしようと思うのですがどのような処理をすればいいのでしょうか…

546 :デフォルトの名無しさん:04/10/25 00:02:31
iアプリの場合、2Dの半透明描画は機種依存
機種によってはホワイトアウトにならないヤカン

547 :デフォルトの名無しさん:04/10/25 00:08:42
>>545
com.j_phone.util.ImageUtil#createMaskedImage使えば、
マスクパターンの細かさを段階的に変えていって疑似半透過できるかも。
まぁP6以降だが。

GraphicsUtil#setPixelでピクセル単位でいじればもっと柔軟に対応できるが、
たぶん >530

548 :デフォルトの名無しさん:04/10/25 00:23:32
P6以降ですか…。

範囲を指定して色を足していくような処理も重いですか?
例えるとx1,y1からx50,y50までの範囲の色にピクセルごとにr,b,g+100足して表示するとか…。
そんな処理がしたいのですが…

549 :デフォルトの名無しさん:04/10/25 01:35:25
>>546
505以降なら、MascotCapsuleを使えば全機種いける。

550 :523:04/10/25 02:19:06
deflate圧縮データの復元ってのがあるみたいなんですけどこれって圧縮データ全てを展開するってことですか?
そもそもdeflate圧縮ってzipの圧縮方法であってますよね?
これ使って指定したファイルだけ取り出す方法あれば嬉しいのだけど。

551 :デフォルトの名無しさん:04/10/25 03:45:23
>>542
Vectorクラスに順次放り込んで最後にString配列へcopyInto()して終わり

552 :デフォルトの名無しさん:04/10/25 05:22:46
>範囲を指定して色を足していくような処理も重いですか?

範囲が凄く小さいなら大丈夫

>>549
プリミティブ描画で簡単に出来ますな
加算、減算、平均?の3通りしかないけど、ホワイトアウト程度の単純な処理なら問題なし

>>530
機種によっては、drawImageには対応してるけどfillRectには非対応だったり
使い物になりませんw

553 :デフォルトの名無しさん: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: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 :デフォルトの名無しさん:04/10/25 18:56:53
>>553
JavaのサブセットはJ2ME。主にCLDC、MIDP1.0のリファレンスを参照のこと。
携帯アプリ向けJavaは浮動小数をサポートしてないとか
例えばStringクラスなどでも使えるメソッドが限られているとか
基本的なところが理解できるはず。

557 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/10/25 22:26:11
>558
Canvasのサブクラスにrepaint()呼ぶだけのpublicメソッド定義すればいいじゃん。

560 :デフォルトの名無しさん:04/10/25 22:30:41
そんな手があったか…半日悩んだのが馬鹿みたいだ
俺の中では559、あんた天才

561 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/10/25 23:13:44
>561
えーと。
その「別のクラス」に、Canvasのサブクラスを参照するフィールドを作って、
Canvasのサブクラスのインスタンス生成したときにそれをフィールドにセットして
後はそのフィールドのインスタンスのrepaint2()を呼べばいい(はずなんだ)が。
(このときrepaint2()はstaticにしちゃいかんですよ)
しかし、Javaの基本をもう一度おさらいした方がいいかも……

563 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/10/26 21:25:51
>564
えーと……やっぱし、Javaの基本、クラスとは何でメソッドとはどういうもので、とかを
もう一辺やり直した方がいいと思う。
例えばメソッドがstaticってのはどういう意味なのか、何故staticなメソッドから
そうでないメソッドが呼べないのか、全然分かってないのでは。

とりあえず、
・cvs#run()でshori.exet()を呼んでるが、それなら単に
 cvs#run()でrepaint()を呼べば済む話では?
・shori.exet()でcvsの新しいインスタンスを作っているが、
 それがmscのコンストラクタで生成したcvsのインスタンスと
 * 全く関係のない、縁もゆかりもない別物 *だということは分かってる?

566 :デフォルトの名無しさん:04/10/26 21:32:24
/*shori*/んとこのcv=new cvs();無しにしればいけるのでは??

567 :デフォルトの名無しさん:04/10/26 21:34:26
連投ごめ、多分だけどprivate static cvs cv;てしてるとこのprivateも要らないと思う
それで一回やってみそ

568 :デフォルトの名無しさん:04/10/26 21:40:31
>>564
オレも、クラスとインスタンスとstaticについて理解し直すとこからやり直した方がいいと思う。
Javaの基本というか、オブジェクト指向の基本だし。
その調子だと、privateとpublicの違いについても怪しいな。

569 :デフォルトの名無しさん:04/10/26 21:48:36
>>565
ごめん
学校で習った程度だから漏れの知識ショボイ
クラスとは何でとかも習ったけど小学生相手にリンゴが一個あって〜とかと同じレベル

>>566-567
言ってる部分を消してみるとエラーでエミュが落ちることは無くなった
けどが描画されない・・・

570 :564:04/10/26 22:13:52
>>568
装飾子の違いは分かってる…と思う
privateとpublicの違いは確か、同クラス内と制限無しだったような
staticは共有メモリ領域を利用するんだっけ…

571 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/10/27 16:15:08
>>571
403の意味より…

574 :564:04/10/27 17:29:35
さっき買ってきた本見ながら572さんの言ってるのを色々試してみるといけました。

コンパイラでエラー出ないし実行も問題ないんだけど
/*cvs*/の所でshori2(shoriとはベツ)のメソッド使用すると
型shori2からのstaticメソッドmethod(String)にはstaticにアクセスして下さい
と警告が出る
shori2.method(String)からstaticを取ると警告は出なくなるけど、shoriがエラー。

実行出来てるし問題はないと思うんだけどかなり気になるのでたいさくあれば教えて下さい

575 :デフォルトの名無しさん:04/10/27 18:02:24
>574
もう分かったから晒せる範囲でソース*全部*晒せ。
いつの間にか最初は影も形もなかったshori2が出てきてるじゃないか。
この分だと「実は……」でshori3、shori4が出てきそうで付き合い切れん。
(まぁ、携帯相手に6個もクラス作ってる余裕は普通ないはずだが
それを言ったら、そもそもクラスは2つまで!!が定石なはずだし)

576 :564: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 :デフォルトの名無しさん:04/10/27 19:48:54
>576
……対策はただ一つ。
藻前さんがもう一度Javaの入門書をきっちり読んで理解すること。
それが嫌なら、警告が出続ける事実を甘んじて受け入れろ。

ちなみに「なぜか知らないけど付けたor取ったら動くようになった」って理由で
メソッドにstatic付けたり取ったりしてるようでは「入門レベルなら理解してる」
とは言えない。

578 :デフォルトの名無しさん:04/10/27 22:52:14
対策:Java言語の入門書(携帯アプリの本じゃないぞ)でしっかり勉強する

近道は無いよ
----------------------------

次の方ドーゾ

579 :デフォルトの名無しさん:04/10/28 00:23:25
なんかオートバックスにVodafone用GPSが売ってて、専用Vアプリを使えばカーナビになるって事なんだが。。。GPSとVアプリとの通信方法って公開されてるかどうか、誰かしらない?

580 :デフォルトの名無しさん:04/10/28 01:32:40
>>579
シリアル制御してんじゃないの?
その手の話はほとんど知らんのであくまで憶測だが。

581 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/10/29 21:42:47
書き忘れていました

呼び出し元のwhile文の中にソフトキーが押された時にだけThread.yield()を実行するようにして
ソフトキーを押した時に実行されるwhile文をfor文に変えてg.drawString("i="+i,0,0,Graphics.LEFT|Graphics.TOP)
としてみたのですがiの数値は増えて表示されるもののどの操作も受け付けませんでした

584 :デフォルトの名無しさん:04/10/29 22:10:23
>両方で交互にrepaintが実行されて

「されて」じゃなくて、そうなるようにプログラムを組んでるんだよ
そうならないようにプログラムを書けば解決

あと、Thread.yield()の意味を勘違いしてるヤカン

585 :デフォルトの名無しさん:04/10/29 22:38:41
repaintが交互に実行されないように、
ソフトキーを押した時の画面が出ている状態では元の画面でrepaintされないようにしてソフトキーの画面のみrepaintするようにしてみました
がチカチカと元の画面に戻ったりソフトキーを押した時の画面になったりします。

Thread.yield()の使い方間違えていたみたいなので消しました。
すみません

586 :デフォルトの名無しさん:04/10/30 02:32:00
なんか、とてつもないわけわからん構造になってる予感。
Canvasはデフォでダブルバッファリングされてるから、
repaintが非同期に呼ばれるだけではちらつくことはあり得んと思うんだが。

情報が小出しなんであくまで想像だが、
SpriteCanvasによる画面への転送は、
たとえSpriteCanvasがDisplayableに設定されてないときにも行えるから、
SpriteCanvasの描画と「ユーザーからの操作を受け付ける画面」の描画が
交互に行われてちらついているんじゃないかな。

587 :デフォルトの名無しさん:04/10/30 14:47:33
まだ初心者で漏れもよく分からんが、setCurrentで切り替えが一番いいんでないか?

588 :デフォルトの名無しさん:04/10/30 16:12:13
582です

587さんの言っているsetCurrentで
ソフトキーを押した時に画面を切り替えることは出来ましたが
呼び出し先で操作を受け付ける画面を描画しても、コンパイラでは問題無しなのですがエミュだとまったく描画されませんでした。
そこで呼び出し先のクラスのextends Formを消してみるとコンパイルエラーになってしまいます。。

589 :572:04/10/30 16:42:49
>>588
せやから急に「extends Formを」とか出すな。消したら〜とかまるで分かってない証拠。
564にも言ったけどインスタンスの関係をハッキリさせて。
どうせソフトキー押した時とかの処理がキッチリできてないから
「元の画面でrepaintされないように」が裏目に出て再描画されてないんじゃない?
とりあえずボタン押しで確実に処理がされているかどうか分からないなら
一行ずつSystem.out.println挟んでどの行まで実行されてるか確認してみたら?
確実に再描画の行が実行されているはずなのに画面変わらないとかはその後。
素早く確実で楽に解決したいならソース丸ごとあげてくれ。

590 :588: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 :デフォルトの名無しさん:04/10/30 21:40:26
>>582
564と同一人物かよ!って別にそれはいいんだけど、
これがどうなるといいんだっけ?普通に画面の切り替えは問題なさそうだけど。

むしろやろうとしてる事がわかるならエラー有るままのほうがやりやすかったかも。

592 :デフォルトの名無しさん:04/10/30 22:58:44
対策:Java言語の入門書(携帯アプリの本じゃないぞ)でしっかり勉強する

近道は無いよ
----------------------------

次の方ドーゾ

593 :デフォルトの名無しさん:04/10/30 23:51:28
同一人物じゃないと思うが…。

>>590
あんま分からんケド一応見てみたが
試しに動かしたらcommand_actionのコンストラクタで呼び出してるmenu ()が実行されてない
cmdMenu押した時のdisplay.setCurrent(command_action);の行をcommand_action.menu();に変えると画面がチカチカした感じになる

590の言ってるのはこれじゃないかと思った
このチカチカするのをなくしたいと。
質問の意味勝手に妄想したケド合ってる?
まあ合ってた所でどうすればいいか俺にはわかんね

594 :586: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:04/10/31 00:33:40
>>593
同一だと思ったのはCanvasにcvsなんて名前つけてた部分だけど、間違ってたらスマソ。

確かにそうすりゃチカチカするね。
つーか、
冷静にソース見たらmenuでwhileループがマズイ。
メインのスレッドがmenuをずっと続けるのでcommandActionとかをやるスレッドが無い。
new Thread した奴はせっせとrunメソッドでループを続けてるだけ。
つまり2本のスレッドがwhileループに入ったままになる訳だ。
最初に「時間が経つと元に」ってのは、あんまりループ続くからフリーズとかだと。

って書いてる途中に594に先越されてしまったけど、確かに勉強は要る。
勉強したくないならあんまりややこしいことに挑戦しないってのも手かも知れんけど。

596 :593: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:04/10/31 01:58:04
あ、だめだ
これだとcvsから別クラスのメソッド呼んで実行してる時にmenu押しても両方でrepaint呼ばれちゃうよ
勝手に別クラスって妄想入れたけどあってたりするかな
回避方法ワカンネので誰か分かる人よろ

別クラスとか言ってるけど何も知らない人が勝手に妄想した単語並べてるだけなんで適当に解釈してやって下さい

598 :572: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:04/11/01 00:28:57
>>593さん、>>572さん
あげて頂いたソースを参考にこちらのアプリに組み込んでみたところ、思い通りの動作をさせることが出来ました。
画面が切り替わるときに白くなるのはこちらのエミュレータでは起こりませんでした。
返事が遅くなってしまいましたがありがとうございました

602 :593:04/11/01 21:53:22
ちょっと質問。

ソフトキーが押されると、
今やってる処理を強制終了(?)させて処理させるところを移動させたいのだけど、
どうすればいいかな?
多重ネストからの脱出ってのは見つけたけど、
これだとbreak文とラベルの記載してる場所が違うと動かないぽい気がするので・・・。

実験もせず書いてるので「出来るに決まってるヴォケ」とか「こんな方法がある」とか、
あと「あんたの説明意味不明」とかでもいいので適当に突っ込んでください

603 :593:04/11/01 21:59:21
ごめん書き忘れ

ソフトキー押した時にフラグ立てて、
強制終了(?)させたい所にifでフラグ立ってたらbreakするとかだと場所が多くて、
今どこの処理やってるのか分からないから記載個所が多すぎて対処しきれない。

main(){
while(true){
//ここ
for(...){}
...
この後もfor文やらwhile文がずらずら。
...
}
}
commandAction(...){
if(c==softkey){}//←ソフトキーが押された時に上の「ここ」ってとこに処理を移したい
}

かなり意味不明な書き方になってるけどこっちの文章力が無いから勘弁
とりあえず、「ここ」って所にソフトキーを押した時に移動したいわけ。

604 :デフォルトの名無しさん:04/11/02 05:02:49
>>602-603
キミも>>578>>592かな…

605 :デフォルトの名無しさん:04/11/02 06:55:19
答:無理

606 :デフォルトの名無しさん:04/11/02 07:03:33
ん?オレは例外投げて対処させたが。
まぁいわゆるgotoがあるプログラムは構造がダメだという例に当てはまるからイクナイと思う。

607 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/11/02 18:19:40
32bitビットマップ形式の保存ファイルは存在しねーぞ。
PCの液晶でも24bitカラーなのに、携帯で32bitなんてあえりえねーだろ。
つーか普通16bitだし。

VRAMの制限でねーの?


611 :デフォルトの名無しさん:04/11/02 18:20:07
うあ、激しく誤爆

612 :602-603:04/11/02 19:39:30
>>606
それでいけそうな気がしてきた
>>607
設計なんて何も考えてない

613 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/11/05 02:24:55
EZアプリでget(Calendar.WEEK_OF_MONTH)を使おうとすると
WEEK_OF_MONTHが解決できませんと出ます。
月の何週目かを取得することはできないのでしょうか?

616 :デフォルトの名無しさん:04/11/05 03:20:33
CLDC1.0のCalendarにWEEK_OF_MONTHはない。
複雑な式にもならんから自力で計算すれ。

617 :デフォルトの名無しさん:04/11/07 23:56:41
iアプリの場合、通信できるのはダウンロードしたときのサーバに限定されてるけど、
Vアプリ、ezアプリの場合ってどうなってるの??

618 :デフォルトの名無しさん:04/11/08 01:56:58
>>617
ez -- あらかじめjadに記載したサイトのみ
V ---オフィシャル登録必要、端末内リソース利用と併用しちゃいけない。

619 :デフォルトの名無しさん:04/11/08 02:47:58
>>618
おお、サンクス
オフィシャル登録って有料なんだねorz

620 :デフォルトの名無しさん:04/11/09 06:44:33
(´,_ゝ`)プッこのスレで質問するレベルじゃないわな

621 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/11/13 18:29:57
まず>>2を見て最低限リファレンスを読むくらいはしろ。
質問はそれからだ。

623 :デフォルトの名無しさん:04/11/13 19:16:51
リファレンスを見てみたんだが、それでもできなかった。

で、getGraphics()を使わない汚い方法を思いつきました
(インスタンス変数として作っていたGraphics型の変数(g2とする)に
paint()内で「g2 = g;」とやっておいて、プログラムの頭でrepaint()を呼ぶ)。
他の方法をご存知の方、ご教授くださいませ。

やっぱり、携帯に電話がかかってきたりして画面が壊れた時のために
画面描画はすべてpaint()内とその中から呼ばれるメソッドでやってたほうが
いいんでしょうなあ。スプライトも使ってるのでそれとの共存とか、
その時のゲーム内の状態(ウインドウを開いているとか)ごとの処理とか、
はあ〜〜めんどそう。

624 :デフォルトの名無しさん:04/11/13 19:33:45
>>623

>>553
>>556

625 :デフォルトの名無しさん:04/11/13 21:19:35
> リファレンスを見てみたんだが、それでもできなかった。

意味不明

> はあ〜〜めんどそう。

ストレスたまるだけだから止めたほうがいいよ

626 :デフォルトの名無しさん:04/11/13 23:03:44
>>623
http://netaro.ddo.jp/techinfo/Javadoc/MIDP1.0a/html/index-all.html

627 :デフォルトの名無しさん:04/11/14 03:34:38
doubleの値を使ってプログラム組んでみるとコンパイラで
Floating point result not allowed
com.sun.kvem.ktools.ExcecutionException: Preverifier returned 1
と言ってきてコンパイル出来ない。
浮動小数点の結果がどうとか言ってるっぽい感じなんだけどエラーの意味わかる人居ます?

628 :デフォルトの名無しさん:04/11/14 03:38:05
>>556

629 :デフォルトの名無しさん :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:04/11/14 12:54:05
ああ、記述ミス。
img_back = Image.createImage(width, height);
gra_offs= img_back.getGraphics();
こっちね。

631 :627:04/11/14 15:20:27
あれ、使えないんですか。
vfはFixedPointで使えるようですけど、+はadd()に置き換えたりしないとだめ?

632 :621: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:04/11/14 15:35:03
連投すいません、
FixedPoint型では<が未定義みたいなんですが、
ifで判断を行う場合はどのようにすればいいでしょうか
整数部のみを取得して比較するのが一般的でしょうか?

634 :デフォルトの名無しさん:04/11/14 17:22:38
>>633
(゚Д゚)ハァ?
Javaには演算子のオーバーロードなんて機能はありませんが?

635 :デフォルトの名無しさん: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: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: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 :デフォルトの名無しさん:04/11/20 01:15:58
InterruptedExceptionの意味がわかんねから
あくまでも参考程度に

単純に、
while(true){
Thread.sleep(100);
repaint();
}
じゃ駄目なのか?

それがだめならタイマー使えば正確に測れる

643 :642:04/11/20 01:18:24
書いてないのに送信してしまった失礼

>>640
難読化ツールのこと?
漏れも検索してみたけど見つかんなかった
誰かよろ

644 :デフォルトの名無しさん:04/11/20 02:06:17
Javaバイトコードなんて、
せいぜい識別子を1文字にするとかそんなレベルでしかできないと思うんだけど。

645 :デフォルトの名無しさん:04/11/20 13:56:31
>643
>難読化ツール
ProGuardってのがフリーで使える。
ttp://proguard.sourceforge.net/

>644
携帯の場合、読みにくくすることより、まさにその
>識別子を一文字にする
ことで、classファイルが縮むことに意義があったり。

646 :デフォルトの名無しさん:04/11/20 15:21:08
>>641
それだと処理にかかる時間が考慮されない予感。

long drawtime = 0;//前に描画した時間
long nowtime = 0; //毎回取得する時間


nowtime = System.currentTimeMillis();
if(100 <= nowtime - drawtime){
drawtime=nowtime;
ここに処理
}

とかで良いんじゃないかな。見にくくてスマソ。

647 :デフォルトの名無しさん:04/11/20 16:08:19
serviceRepaintsはなくてもいいのか?

648 :640: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 :デフォルトの名無しさん:04/11/22 16:47:47
>上位のSDKで追加されたクラスを利用するにはどうすればよいのでしょうか。
上位のSDKで追加されたクラスは使用できるのでしょうか?

652 :デフォルトの名無しさん:04/11/22 17:38:41
>>650
stubclassの名の通り、SDKのクラスには実際のコードが含まれていない。
実際のコードは実行環境側にあるので、不可能。

653 :デフォルトの名無しさん:04/11/22 21:50:59
>実際のコードは実行環境側にあるので、不可能。
ありがとうございます。とんちんかんな質問でした。申し訳ないです。。。
それでは、P4型で読み込んだ画像(png)を90度回転させたり、上下左右反転
させたりするにはどうすればよいのでしょうか?AppletだとPixelGrabberで
ピクセル取得して入れ替えて表示させたりしているのをみつけたのですが。
クラスを自作するとしたら、どのようにすればよいですか?

654 :デフォルトの名無しさん:04/11/23 00:02:14
>>653
Vアプリは作ったことないが、その為にボーダではスプライトがあるんじゃね?
スプライトが嫌なら前方向に回転させたpngを用意するとか。

655 :デフォルトの名無しさん:04/11/23 00:29:52
がんばって行列計算するとか。

656 :デフォルトの名無しさん:04/11/23 00:36:17
90度単位なら行列計算いらんだろ。

だけど、Graphicsクラス上でピクセル単位でいじれるのはP5からなので、
P4でやろうと思うと、
>654 のスプライトか、PNG解析クラスを自作するかくらいしかないんじゃないかな。

657 :デフォルトの名無しさん:04/11/23 12:09:48
潔くPNG解析汁

658 :デフォルトの名無しさん:04/11/23 12:20:29
てか自前でPNG解析クラスなんか作って容量大丈夫なのか?

659 :デフォルトの名無しさん:04/11/23 18:31:40
回転画像用意する分より小さく作るなら意味あるな

660 :656:04/11/23 22:27:05
オレは、容量よりも手間が気になるが。
んなことぐーたら考えてる間に、90/180/270回転した画像くらい用意できてしまうわな。

>653
どう対処するかは、どんなアプリをどういう形で配布するのが目的かによるんじゃないかな。
特に制約ないなら「P5以上です」と割り切れるし、
ゲーム配布ならスプライトにしてしまった方が楽だし、
とりあえず完成させるのが先ならPNGを4種類回転分だけ用意した方がいいし、
似たようなアプリを今後大量に作らなきゃいけないのならPNG解析クラスを作るのにも意義があるし。

661 :デフォルトの名無しさん:04/11/24 03:24:30
VアプリをEZ向けに移植しようとしているんだけど
エミュだと遅すぎて途中で止まったようになってしまう
これ実機だとちゃんと動いてくれたりする可能性ある?


662 :デフォルトの名無しさん:04/11/24 08:56:53
バグって止まってるんじゃないの?

663 :デフォルトの名無しさん:04/11/24 09:37:26
653です。まずスプライトでやってみます。
PNG解析の方は、もう少し勉強してから挑戦してみます。
みなさま、ありがとうございました。


664 :デフォルトの名無しさん:04/11/24 13:00:29
>>661
エミュの速さは
EZphase3対応エミュ>Vアプリエミュ>(壁)>配布中のEZエミュ
ですのでPhase3対応を探すかMIDP1.0のみで作ってVエミュで試すとイイデスヨ。
止まるのは大概メモリ不足関連。デカイのつめば少しはマシかも。

665 :デフォルトの名無しさん:04/11/24 22:43:55
Vエミュ今月verUpしたやつはスピードも上がってるよ

666 :デフォルトの名無しさん:04/11/25 13:59:54
Unofficial "MID Profile-1.0" API Reference
どこでみれるか教えてください。

667 :デフォルトの名無しさん:04/11/25 15:25:41
VjavaP6で質問です。

例えば、画面の切り替えなどで徐々にブラックアウト。
現画像捨てて取得。
徐々にブラックイン(?)という処理で
ブラックアウトとブラックインしたいのですがどうすれば良いのでしょうか?

使えそうなメソッドとかUtilも無さそうです。

元々基幹系をやっていたもので畑違いのDisplayやらThreadに白黒させながらやってます。
どなたか教えていただけないでしょうか?

>>179の日本語APIリファレンスが開けないのですがこちらの在り処もご存知でしたら教えていただけないでしょうか?

668 :667: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 :デフォルトの名無しさん:04/11/25 21:13:39
>>664
EZphase3対応エミュで動かしたらサクサク動いてます
どうやら(壁)にぶつかってたようで・・・
ただphase2.5機種の性能が(壁)より上であって欲しい

>>665
DrawImageだけだとEZphase3対応エミュはそのVエミュより倍以上はやい
でもVエミュの方が実機に近いし設定いじれて便利


670 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/11/26 09:24:29
携帯のソフトを作っていたいのですが
なにかお薦めの本ありますか?


672 :667:04/11/26 12:05:20
>>670
有難うございます、ファイルやネットワークからの画像データからcreateImageした場合は
不変となってしまうんですね。

一旦オフスクリーンに書き出すなどしてみます。

673 :デフォルトの名無しさん:04/11/26 15:04:32
>671 >>578

674 :デフォルトの名無しさん:04/11/26 20:04:30
USBクレードル部分をJAVAで制御は出来ないの?
つなげたい機械があるんですが

675 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/11/27 02:37:18
MIDP2.0の本とかある?
早くvodafone 3G メガアプリの予習したい。

677 :673: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 :デフォルトの名無しさん:04/11/27 02:57:38
>>677
ありがと

679 :デフォルトの名無しさん:04/11/27 06:50:57
902SHとかってMIDP2.0なの?

680 :デフォルトの名無しさん:04/11/27 12:37:05
これから出てくるボダの3G機は、MIDP2.0だよ。たぶん。


681 :デフォルトの名無しさん:04/11/27 15:55:25
質問します。
vodafoneでブラウザアプリが禁止されてるというか、認められてない理由を概略でいいのでご存じの方教えてください。
なんの理由なんでしょうか?
グーグルで自分で調べてみたしたが「ブラウザ アプリ 禁止 vodafone」とかの条件でやってみても
ブラウザアプリが禁止だという記事が出てくるだけでその理由にふれたものが出てきません

682 :デフォルトの名無しさん:04/11/27 16:37:25
ブラウザアプリって何を指しているの?
定義は?

683 :デフォルトの名無しさん:04/11/27 16:48:30
>>682
ttp://www.itmedia.co.jp/mobile/articles/0410/07/news006_2.html


684 :デフォルトの名無しさん:04/11/28 01:32:37
>>682
http://ac-admin.appget.com/open_kiyaku.htm
アプリゲット・配布が禁止されている特定の種別のアプリケーション(Vアプリ作品)
によると
  「パソコンでいうインターネットエクスプローラのようなもの」
らしい。「ようなもの」ってなんやねん、というツッコミはアプリゲットの方へお願いね。


>>681
理由は表には出たことはないと思う。
auの「Opera搭載機でOpera経由のはパケット定額対象外」
てな形に持っていけるようにするための事前の釘さしだと思うけどね。

685 :デフォルトの名無しさん: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:04/11/28 10:22:50
>>684
>理由は表には出たことはないと思う。
>事前の釘さしだと思うけどね。

返レスありがとうございまた。どうりでグーグルで出てこないはずです。
正々堂々と言えないvodafoneにとってのせこい理由が想像出来ました。
jigブラウザと定額を組み合わせるとキャリアのゲートウェイは大量のデータが通過するのに、利益はjigが持っていくというシステムを
容認することになり、キャリアにとっておもしろくないことは確かですね。
コンテンツビジネスへ収益構造の比重を移したい時に、よそに利益を盗られる、アプリが迂回路になることをふせいでいるのでしょうか
auは認めているといっても、無くなっていく運命のJava機だけで、他の多数のBREW機種では利用不可能ですから・・

687 :681:04/11/28 10:44:34
×ありがとうございまた。 ○ありがとうございました。

688 :デフォルトの名無しさん:04/11/28 16:15:42
VappliP5です

オフグラフィックスに画像や文字などを描画してからまとめて回転したいのですが
drawRegionだと画像のみの回転しか行えず困っています
何か方法はありますでしょうか
無茶な方法でもいいので、分かる方返答下さい

689 :デフォルトの名無しさん:04/11/28 16:55:13
>>686
jigブラウザの作者がインタビューで
「vodafondはブラウザアプリが禁止されているから断念した」」
って答えてたからね。

690 :デフォルトの名無しさん:04/11/29 01:15:50
>>688
オフグラとセットでオフイメージ作ってるんじゃないの?とか言ってみるテスト。
Image offImg = new Image( width,height );
Graphics offGra = offImg.getGraphics();

691 :688:04/11/30 00:56:43
>>690
解決出来ました〜
ありがとうございました

692 :デフォルトの名無しさん:04/12/01 11:45:20
当方VアプリでCGI連携を目論んでいるのですが、
Access denied というエラーが起こりCGIにアクセスができません、、、
どうすればいいんでつかね?

693 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/12/01 16:57:02
>>692
そのCGIはPCでアクセスできることを確認した?
あと、Port80以外はアクセスできません(vodaの制限)

696 :デフォルトの名無しさん:04/12/01 17:13:35
>>692
>>80


697 :デフォルトの名無しさん:04/12/01 18:35:24
>>692
MANIFEST.MFないしjadファイルに
  MIDlet-Network: Y
が記述されているか確認してみて。

698 :692: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 :デフォルトの名無しさん:04/12/02 00:13:00
>>698
Apacheのerror_logもあぷしれ

700 :692:04/12/02 10:15:49
java.lang.SecurityException: access denied
だけですが、、

701 :デフォルトの名無しさん: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:04/12/02 12:37:00
>>700
Apacheは使ってませんです、、、。
普通のサーバです。
Sun oneで、Midlet属性を付加するやり方が不明です。
jadファイルに無理矢理書き込んで実行とはまた違うんでしょうか?
>>
MACSサーバとは何でしょうか?
ググってもそれらしいものが、HITしないのですが、、

704 :デフォルトの名無しさん:04/12/02 12:45:44
「普通のサーバ」?
ワケワカラン


705 :692:04/12/02 12:58:17
>>704
KCNのホームページスペースなんですけど、、、

706 :デフォルトの名無しさん:04/12/02 16:01:41
新しいスターが誕生した予感(^∀^)わくわく

「Apacheじゃないです。KCNのホームページスペースなんです」Σ(゚Д゚)
「ホームページスペースなんです」「ホームページスペースなんです」「ホームページスペースなんです」
今後の展開から目が離せません

707 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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: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 :デフォルトの名無しさん:04/12/02 22:00:44
SunONEを使ってる香具師がいない悪寒
あきらめてjadファイルを手で直せ

712 :デフォルトの名無しさん:04/12/02 22:04:11
MIDlet-Application-Security: Y
これじゃいかんのかい?

713 :701: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 :デフォルトの名無しさん:04/12/03 01:05:01
>>709 は、
サーバがMIMEタイプでapplication/Javaを吐かないのが原因とかそんなとこじゃないかな。
とりあえず、localhostにサーバ立てて実験しる。
サーバのたて方すらわからんのなら、HTTPConnectionするアプリはあきらめた方が無難だと思う。

715 :692:04/12/03 12:34:48
やはりSunONEユーザはあまりいなさそうですね、、、
画面はちらつくわ、、すぐ応答なしになるわ、、、orz

昨夜本屋などをかけずりまわり〜自転車のカゴがへっこんだりもしましたが、、
やっとマニフェストの追加のやり方がわかりました!!
JARレシピうんたらでJARファイルを細かく設定できるみたいです。
しかし、、、
アーカイブ時にmidletやらが入ってるjarとのつながりがなくなってしまい、
NoClassDefounderrorです、、、orz
とりあえず動かすとこまでがんばってみます!!

716 :デフォルトの名無しさん:04/12/03 13:46:12
MIDPのソースコードってどこにあんのさ?

717 :デフォルトの名無しさん:04/12/03 15:36:12
Phase3エミュを使ってる人にお伺いします。
EZアプリ Phase3のセキュリティA機能(データファイルの読み書き)は、
Phase3エミュで動作確認できますか?


718 :デフォルトの名無しさん:04/12/03 21:40:41
>>716 ベンダーの名前くらい書いたら?
IBMのにはついてきた。Sunのにもあったような気もするが忘れた。

719 :デフォルトの名無しさん:04/12/04 14:26:45
Voda P6型
Eclipseプラグイン公開されたね。
うれしいよ。


720 :デフォルトの名無しさん:04/12/05 21:10:45
MIDlet-Network: Y
ってJAD側の属性なのにビルドで悩むもんなの?
もれも >>701 の言う通りtxtで試すべきだと思う
って遅いか・・・まあがんがれ

721 :692: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 :デフォルトの名無しさん:04/12/06 21:49:58
アドバイスを全く聞いてないところが素敵すぎる
見事な亀感棒ですな

723 :デフォルトの名無しさん:04/12/06 23:30:47
java.lang.NoClassDefFoundError

ってことだから調べれば出てくんだと思うわけです

ヒロツです

724 :692:04/12/07 12:42:46
おかげさまです。
ありがとうです。

725 :デフォルトの名無しさん:04/12/07 15:37:54
ボダ3Gの開発キットって公開さてないの?

726 :デフォルトの名無しさん:04/12/08 01:01:06
>>725
さてないよ

727 :デフォルトの名無しさん:04/12/08 09:35:11
Vアプリを、eclipse3と、P6エミュでデバッグしたいんだが、
リモートデバッグでエミュに接続後、エミュが不定期に落ちる・・・
なんとかならんの?それとも俺だけ?

728 :692:04/12/08 16:38:36
P6端末では細い文字しか出力できないのですか!?
スタイルボールドにしても見た目が変わりませぬ、、、

729 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/12/08 21:33:51
>>728

実機で見てないけどエミュだと変わらないみたいだ
機種依存しそうな部分だから気をつけたほうが良いかと


731 :デフォルトの名無しさん:04/12/08 23:30:20
設計でおしえてください。
基本的にCanvasで画面展開するアプリを作ろうとしているのですが、
メールアドレスの入力をしてもらう必要があります。
この部分だけ、Formを使わないといけないのでしょうか?
Canvasに入力欄を作ることはできないでしょうか?

今はMIDletを制御するだけのクラスと、Canvas拡張クラスで作っています。
画面展開などはCanvas拡張クラスのPaintにパラメータを渡すことで済ませています。


732 :デフォルトの名無しさん:04/12/09 02:18:01
MIDP2.0に対応しているプロファイルってどれ?VアプリだとP6以上?Phase3はMIDP1.0だよね?

733 :デフォルトの名無しさん:04/12/09 05:07:35
>>731
MIDP1だけだと、TextField/TextBox使うしかないね。
もしくは、Canvas上でFepまで作ってしまうか。

>732
3Gから。っっっと思う。
少なくとも一般にはまだ公表されてないハズ。

734 :727: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 :デフォルトの名無しさん:04/12/10 17:48:47
>>735
Venderが短すぎる・・かな?3か4バイト以上じゃなかったっけ?

737 :デフォルトの名無しさん:04/12/10 18:44:55
アップロード審査通知 というメールに内容が書いてありました。
「JARのファイルサイズが、制限の204800バイトを超えています。」
でした。
stubclasses.zip の中身を削除することってできるんでしょうか?


738 :デフォルトの名無しさん:04/12/10 22:06:05
>>737
stubclassesの中身削ってもアプリサイズは減らないよ。
・・まさかjarに同梱しちゃってるの?

739 :デフォルトの名無しさん:04/12/10 23:41:26
jarにstubclasses.zipを同封しようとしているやつがいるのか。
世の中ひれーな、おらワクワクしてきただ。

740 :デフォルトの名無しさん:04/12/11 21:07:41
>>732

VFXとか言う聞き慣れないプロファイルらしい。
P6とかと根本的に違う物なヨカーン。



741 :デフォルトの名無しさん:04/12/12 00:27:00
>>738, 739
KToolbar の作る
C:\WTK21\apps\Project\lib\
にstubclasses.zipを置いてビルドすると、
できたjarの中に入ってます...。
stubclasses.zipで検索しましたが、扱いについての説明は見つかりませんでした。

ばかな質問かもしれませんが、どうしたらよいのでしょうか?
よろしくお願いします。


742 :739: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:04/12/12 16:50:41
>>739
確かにKToolBarには追加する機能なかった気がする。
基本は742の方法(参考書とかも確かこう)なんだけど
オイラはkjx作成ツールを使ってる。詳細は綿100号さんのサイトで。
最近ではEclipse2.1.3とか使うのもオススメ。

744 :デフォルトの名無しさん:04/12/12 16:56:44
KToolbar でできると簡単なんですけどね...。
KToolbar で作ったjarの中から、com、java、javaxフォルダを削除して、
新しいサイズをjadに書き込む...
というやり方ではまずいでしょうか? 一応エミュレーターでは動作しました。


745 :デフォルトの名無しさん:04/12/12 17:30:45
そこでantですよ。
build.xmlは一回書けば大抵のプロジェクトで使い回せるし
(jarの名前なんかは*.propertiesに書いて外に出しておけばOK)マジお勧め。

746 :デフォルトの名無しさん:04/12/12 19:42:31
ボーダでstubclasses.zip関係であれこれ試してるやつは前スレを一読することを勧める。
参考になるやり方がいろいろ出てる。

747 :738:04/12/12 23:16:19
>>744
とりあえず動けばマズイ事はないと思うけど、やっぱ面倒でしょ?
エラー見つかってソース書き換えるごとにそれって・・。
いかに楽するか、がプログラミングなので、面倒なのはツール任せ。
・・とか言ってantの用途をEclipseプラグインのガイド見て知ったオイラはヘボグラマ。

748 :739: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 :デフォルトの名無しさん:04/12/13 20:15:01
>>749 Eclipse? インクリメンタルコンパイルの前にプリプロセッサに
かけることも出来るし、いかようにも。

751 :デフォルトの名無しさん:04/12/13 23:06:29
>>750
へー、そうなのか

漏れはmakeで全部やってるが、規模が大きくなってきたんでそろそろエクリプスに移行したい‥

752 :デフォルトの名無しさん:04/12/13 23:50:40
最後はeclipse + make, eclipse + antなんだと思っていたけどそうでもないのかな?
googleで検索してみて。俺はeclipse + makeね。

make, antのスレもこの板にあるよ。

753 :デフォルトの名無しさん:04/12/13 23:58:07
自分もbat。NTで拡張されたforとか使ってる。ppはbccとppinc。

>>750 プリプロセッサ使ってみたいからポインタ教えて。enumが使えるなら明日にでも乗り換える。

754 :デフォルトの名無しさん:04/12/14 00:20:12
コマンドラインでant使ってる漏れは異端だったのかorz
ちなみにまずclにかけてプリプロセスした後一旦jarにまとめ、(ProGuardに掛けるには一度jarに
まとめないとめんどいのだ)それをProGuardにかけて削り混んだ後
再度リソースと一緒にjarにまとめて謹製ツールでkjxに仕立てるところまでフルオート。
ふる、ふる、ふる、むーーーん……いや、何でもないんだうわなにわqwdfんhl

755 :デフォルトの名無しさん:04/12/14 05:40:56
わたしのしもべー

756 :デフォルトの名無しさん:04/12/14 12:17:01
>>733
>3Gから。っっっと思う。少なくとも一般にはまだ公表されてないハズ
>>740
>VFXとか言う聞き慣れないプロファイルらしい。
>P6とかと根本的に違う物なヨカーン。

というとはiMonaのような一般投稿アプリでは、MIDP2.0対応にしばらく時間がかかりそうだということですか?
じつは携帯板の一部では簡単に対応出来るような電波飛ばしてる人がいるので
確かめたいのでお聞きしました。公式ではなく一般投稿アプリに関してです。

757 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/12/15 01:03:32
Vodafoneから公式のEclipseプラグイン出たね。

760 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/12/15 19:04:42
>>761
んー。それは難しいな。MIDP1.0の範疇では無理だね。
VodafoneのP5,P6アプリならGraphicUtil#getPixelを使って1ドットずつ読み込むしかない。
ただし激重いよ。
auはちょっと分からない。

764 :デフォルトの名無しさん:04/12/15 19:10:25
そうなんですか。。。
適切なご解答ありがとうございます。



765 :デフォルトの名無しさん:04/12/15 21:35:37
>>761
auにもPhase3でExtensionGraphics#getPixelがあるけどV同様激重。
しかも約2Byte/pixだからQVGAで150KB。デカ過ぎるし保存にも時間かかるよ。
情報は落ちるが一度jpgにエンコードして保存した方がいいかも(QVGAで約10KB)。
au,Vともカメラ操作できる端末ならミュータブルなImageをjpgバイト列にエンコ可能なはず。

766 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/12/19 19:38:06
自分でアルファブレンディングするメソッド作るしかないんじゃないの?

770 :デフォルトの名無しさん:04/12/19 22:56:40
>>768
難しいですね。
速度重視でないなら、バックスクリーンをバイト配列なんかで保持し、
自分で演算して、アルファブレンディングするしかないです。
・・・考えるだけでも嫌ですね(^^;

771 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/12/21 02:00:51
>>770
速度気にしないならgetPixelでピクセルごとに色取り出して選択色と加算しながら
始点から終点まで点を打っていくっていうのもアリだと思う。
drawArcとかの代わりにはならんかもだが、3Dでプリミティブに透過でつけて
通常のCanvas上に平行投影したらいけそうな気もする。

>>777
クラス名がmainが変数名なら
public static MIDlet main; だよ。
[修飾子] [修飾子] クラス(型)名 変数名 の順だ。
この時点でクラスと変数ごっちゃになってるから他(canvas1とか)も同じ事して
「シンボルを解決できない」のは当然だと思う。
何が言いたいかって言うと、「画面遷移以前の問題」。

779 :デフォルトの名無しさん:04/12/21 11:26:41
>>777
まず、Javaを勉強しろってこった。OJTだけだと余計なところで
躓いて、結局非効率だ

780 :デフォルトの名無しさん:04/12/21 15:21:04
>>778
777の返答は誤りでした。 そうではなく、
public static Main midlet;
の書き間違いでした。 キャピタライズしてなくて誤解を与えたかもしれませんね。
意図はそのまま、midlet が変数です。
javacは通るので、そこまでの間違いは犯していないつもりです。


781 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/12/21 16:03:00
お前が書きミスしたくせに「誤解」とは偉そうだな。
ImproveMIDletの参照が得られるのではなく、listCanvasの参照が
得られるんだよ。それはpublic static宣言しているからだ。
同様に、midletの参照を得たけりゃ、ImproveMIDlet.midletでOK。
お前は最初で、mainしか渡してなかったじゃねーか。
それじゃどのmainか解らないから、シンボルが解決できない。
staticとして宣言してるメンバなら、クラス名.メンバ名でシンボル解決する。
それこそ、Javaの基本だろ。

783 :778:04/12/21 21:00:21
>>780,781
シンボル解決しなくてもjavacって通るっけ?

正直に言うとこのスレだけで「canvasの切り替えが出来ない」とかいう奴が2,3人いたので
それ読んだ上でのその質問なのか、というか、
読んでないと思うし、同様に理解してない雰囲気が文面から感じる。
普段ちゃんとソース書いてりゃココでそんなミスしない。

「〜をマネした"つもり"」で「省略してます」とか言われても予想できない。
けど、そんな複雑なのを参考にする意味があるカイ?簡単なのでためそうよ。
一番は自習だが、どうしてもってんならソース全部さらせ。

784 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:04/12/24 21:17:24
>>787

>質問1.現在実行中のJavaアプリケーション内から他のJavaアプリケーションを起動するにはどうしたらいいですか?
>     DojaのIApplicationクラスにあるlaunch()メソッドみたいな奴があれば嬉しいんですが・・・
MIDP2.0(JSR118)ではそのような機能はサポートされていません。

>質問2.実行中アプリからブラウザを起動する
MIDlet#platformRequest()で可能です。

>(あと、できればブラウザからアプリを起動するってのもほしい)
これはMIDP2.0(JSR118)では、未サポートです。


790 :デフォルトの名無しさん:04/12/24 22:20:25
>>789
うほっ
ありがとうございます!

791 :デフォルトの名無しさん:05/01/08 15:07:47
質問です。
EZアプリでキー操作音を消すにはどうしたら良いのでしょうか?
もちろん「マナーモードにしろ!」ってのは無しで。。


792 :デフォルトの名無しさん:05/01/08 17:40:15
>>791
平常時からキー操作音OFFにしておく。
アプリでの設定は不可。(メーカーが特別に作ってたら知らんけど)

793 :791:05/01/08 17:57:43
>>792
レスありがとうございます。
しかしながら、JAVAで設定できると思います。
幾つかのキー音無しのアプリがあったので。

794 :デフォルトの名無しさん:05/01/08 18:38:19
現行機種だと出来るのかもな
大昔の機種は出来ないんだよね

単にBGMが鳴ってるだけだったりしてw


795 :デフォルトの名無しさん:05/01/09 21:04:27
質問です。現在Vアプリの作成中です。
複数行のテキストファイルを1行毎読み込んで表示させたいんですが、
Vアプリの場合、BufferedReaderクラスのreadLine()メソッドってな
いんでしょうか?

796 :デフォルトの名無しさん:05/01/09 21:46:59
なんかここ急に人居なくなったな
なっちは元気にやってるんだろか、最近見ないね

797 :デフォルトの名無しさん:05/01/10 04:40:14
>>795
CLDC1.0+MIDP1.0+JSCL1.2.1にBufferedReaderは含まれません。

798 :792:05/01/10 11:43:28
>>791
うん、まぁ確かにあるのかもしれない。
公式のテトリスでマナー中でも音が鳴ってどうやったら出来るか疑問だった。
多分 DeviceController あたりを使うのだろうと思うけど一般に公開されてない。
ファイルの読書みたいに公式アプリのみで可能な事だと僕は理解してる。
もし一般アプリで音無しが有ったならその作者に聞いてみて。

・・って書いてしまったけど、もしこのスレで詳しい方いましたら補足・訂正お願いします。

799 :デフォルトの名無しさん:05/01/12 19:14:40
Vなんですが、
java.util.Calendar#setTimeInMillis(long millis)
はCalendarインスタンスへの時刻設定で、
ひょっとして端末の時刻を変更することはできない?

HTTPアクセスして自動的に端末の時刻を合わせるなんてアプリを思いついたんだが、
できなさそう。

800 :デフォルトの名無しさん:05/01/12 20:03:37
>>799
ひょっとしなくても、そのとおりです。
Systemには現在時刻を取得するメソッドはありますが、設定するメソッドはありません。

801 :デフォルトの名無しさん:05/01/12 20:29:13
ん・ぱか工房さんのところにあるSizeUpdate.classを使用すると
jadファイルの日本語(UTF-8)が化けてしまうんですが、
文字化けしないようにできないでしょうか?

802 :デフォルトの名無しさん:05/01/12 20:31:07
>>801
それくらいのツール、javaでさくっと作ればいいのでは?

803 :799:05/01/12 21:01:23
>>800
どもです。やはり無理ですか。
時刻合わせホントにめんどいんすよね、Javaから設定できれば楽なんですが。
いっそのことauに機種変・・・

>>801
jadupd
http://homepage1.nifty.com/marukun/java/vapp.html

804 :デフォルトの名無しさん:05/01/12 21:32:43
>>801
Vodaのサンプル集にAnt Taskが入ってる。

805 :801:05/01/12 22:30:58
ありがトン

806 :デフォルトの名無しさん:05/01/14 14:31:21
Vodafoneのビジネスデベロッパー用のアプリを作成しています。

0x系の待受けアプリを作成しているのですが、
週刊ゲーム&アプリLiveの
ダウンロード通知で"JResidentMIDletが必要"エラーが出てしまいます。
5x系のときは、このAPIを使用して作成しましたが、
0x系では、com\j_phone\midlet\ResidentMIDlet.class が存在しないために、
JResidentMIDlet を使用することができないと思っています。

どうしたらよいでしょうか?
よろしくお願いします。


807 :デフォルトの名無しさん:05/01/15 05:13:20 ID:??? ?
>>806
ビジネスが具体的に一般向けのやつとどう違うのかは知らんが、一般人でも見られるとこからの情報だと、
JSCL1.0ではそもそもResidentMIDletがないので、
DeviceControl#setTelephonyListenerとか使って
TelephonyListenerをimplementsしたクラスを登録するしかないと思う。

808 :デフォルトの名無しさん:05/01/15 16:02:19
>>807
そうですよね。

もちろん、そのように作成したら、
"JResidentMIDletを使用して作成する必要がある"
と言われるのですよ…。

おかしいですよね。


809 :デフォルトの名無しさん:05/01/16 01:12:58
JSCL1.2 emulaterで
Emulator boot-up timeout.
とでて落ちるのはなぜでしょうか?

810 :809:05/01/16 01:15:47
自己解決しました。
ttp://homepage1.nifty.com/marukun/java/vapp.html
ここによるとファイアーフォールが問題だったようです。

811 :デフォルトの名無しさん:05/01/17 00:28:11
LZ77圧縮アルゴリズムに詳しい人いますか?
アプリ内で使いたいのです

812 :デフォルトの名無しさん:05/01/17 08:15:57
アルゴリズム事典を買いなさい。必ず買いなさい
ttp://www.amazon.co.jp/exec/obidos/ASIN/4774117293/

813 :デフォルトの名無しさん: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:05/01/18 07:30:22
あと、同じ場所にある画像データは
img = Image.createImage("/0.png");
などで読み込めております。


815 :デフォルトの名無しさん:05/01/18 18:13:03
>>813
mbacってアクションじゃないのか?

816 :一念発起:05/01/18 21:47:08
Vodafoneの携帯用のJavaアプリを作ってみたいと思うのですが、
右も左もわからず、どうやって開発環境を作ったものかもわかりません。

現在の私の環境は、
JDK1.5
Eclipse3.0.1
です。

V601T用のアプリを作りたいので、JSCL1.2.2をインストールしましたが、
この後、なにを導入すべきなのかを教えてください。
または、詳しい文献等がありましたらご紹介願います。


817 :デフォルトの名無しさん:05/01/19 00:18:01
>>816
http://developers.vodafone.jp/dp/
とりあえず、ここにあるPDF読む。
それだけで、ビルドの方法はわかる。

ちなみに、自分で解決する能力がないなら、
資料と同じバージョンの環境を使うこと。

818 :デフォルトの名無しさん:05/01/19 00:28:14
>>813

iアプリ用のmbacって,Vアプリで使えないんじゃなかったっけ?
Vアプリ用のmbac変換ツールを使って作りなおす必要があるとか
どっかに書いてあった希ガス

819 :816:05/01/19 00:42:19
>>817
それも、とりあえず片っ端から読もうと思って、最初に「概要」をダウン
ロードしてみたんです。
そしたら、冒頭に「CLDCとMIDPを熟知していることを前提とする」ような
ことが書かれていたので、読むのを断念しました。

それでもPDFにある通りにインストールを続けてたんですが、バージョン
の違いからか、どうも上手くいかなくなってしまい、困り果ててこちらに
お世話になったという次第です。

できることなら、いままでの環境を残したいと思い、私と同じ環境で開発を
進めている方の声でも聞ければと思ったのですが・・。
一度消さないとダメなんでしょうか?

820 :デフォルトの名無しさん:05/01/19 04:01:38
>>819=816
あなたの場合は消さないとダメ。理由は>>817が言うとおり。

ここから先は余計なお世話になるが…
816はJava言語やオブジェクト指向についてもよく知らない様子だから、
アプリ製作以前にまずそれらを参考書とかで学んだ方がいいかもしれない。
今は多分Vアプリ開発資料のどれを読んでもチンプンカンプンだと思うから。
このスレでもことあるごとに出てくる言葉、それは「急がば回れ」。頑張ってくれ。

821 :816:05/01/19 09:58:44
Javaについては、全く問題はないかと言われれば自信はありませんが、勉強しました。
一応(ほんとに一応ですが)、実務経験もありです。

そこで「さぁはじめよう」と思い、 Vアプリ開発ガイドに目を通したら
「CLDCとMIDPを熟知していることを前提とする」とあったもので、少々面食らって
しまった訳です。

使い慣れたEclipseを使いたかったんですが、とりあえずは
・JDK1.3
・J2ME Wireless Toolkit
・JSCL1.2.2
だけでやってみようと思います。

疑問なのですが、皆さんは一番最初はどうやって始められたのでしょうか?
Java言語についての知識ははじめからあったのだろうとは思いますが・・。

あと、登竜門となるサイトや文献があったら教えてください。

822 :デフォルトの名無しさん:05/01/19 10:53:44
Java:出始めのころアプレットを作った。その時ある程度覚えた
CLDC、MIDP:Sunが出してる資料を一通り読んだ
携帯アプリ:キャリアが出してる資料を一通り読んだ

あとは経験と勘と努力と根性
まともな実務経験があるなら、MIDPとVアプリの仕様を勉強すれば作れるでしょ

サイトはhttp://www.saturn.dti.ne.jp/~npaka/とか

823 :デフォルトの名無しさん:05/01/19 12:43:49
>>821
vodaのエミュレーターが出たときに速攻で落としていろいろ実験した

824 :デフォルトの名無しさん: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:05/01/19 20:24:15
>>822,823,824
レスありがとうございます。
紹介していただいたサイトも非常に勉強になります。
なんとか「HelloWorld」と表示させることはできるようになりました。
要するに環境ができたというだけの話ですが・・。

で、今日はいろいろやっていて一つわかった事があります。
それは、JSCL1.2.2 は JDK1.5 では動作しないっぽいということです。
エミュレータを実行させてたら、1.4か1.3を使えというエラーがでました。

昨日インストールが上手くいかなかったのもそのせいでした。
やはり、初心者は初心者らしく素直に資料にあるとおりにやらなきゃダメですね。


827 :820:05/01/19 21:55:42
>>821=816
失礼しました。

>皆さんは一番最初はどうやって始められたのでしょうか?

Vアプリの前にiアプリ開発、その前にVC++での開発経験があった。
iアプリの時は簡単な本を1冊読んで携帯アプリの構造をつかんだら
VC++のアプリを移植していくようなイメージで試行錯誤。
キャリアが用意したドキュメント(いわゆる開発ガイド)はしっかり読んだ。
APIリファレンスは必要に応じて。

828 :デフォルトの名無しさん:05/01/20 04:35:49 ID:??? ?
オレは、最初は入門記事から入った。
今はないここ。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:05/01/20 13:27:54
>818
遅レス申し訳ないです。
mdac 作成担当に変換データを作ってもらったら、素直に読み込んでくれました。
ご指摘ありがとうございました。

ただ、ひとつ疑問なのは、png データでは「/0.png」みたいに“/”をつけても問題ないのに
Figure などの3D系はつけると例外になるんだろう?
(そういう仕様だと言われれば、それまでなんですが…)。


831 :デフォルトの名無しさん:05/01/20 16:22:47
>>830
APIの仕様策定者か実装者に聞くしかないのでは。
3D系はSunとは関わりないしね。

832 :816・821:05/01/20 17:24:15
皆さん共通して言えることは、ドキュメントをよく読むということですね。
自分は面倒くさがり屋なんで、子どものころからプラモデルとかも説明書を読まな
いで作ってしまうタイプなんですが、それじゃあイカンと。
精進します。

今日は Eclipse + Ant を導入しました。
快適ですね。
Eclipse上でコーディングからビルド、実行までできてしまうとは・・。
824さんの言う通り、Eclipse3.0.1 では実行時にエラーが出ました。
仕方なく、2.1.3 にダウングレード。

ここで、また疑問なのですが、
ビルドまで Eclipse でできるということはもう J2ME Wireless Toolkit は必要
ないということでしょうか?

あと、昨日からずっと探しているのですが、MIDP の日本語版のドキュメントって
ないのでしょうか?

833 :デフォルトの名無しさん: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 :デフォルトの名無しさん:05/01/20 19:59:53
さかきけい氏、どうしたんだろ〜

835 :デフォルトの名無しさん:05/01/21 14:32:09
>>832
preverifyが必要なので、Wireless Toolkitに含まれるツールはいるよ。

MIDPのドキュメントについては、「英語を読め」と。
日本語訳もあったけど、抄訳なので。

836 :816・821・832:05/01/21 14:40:48
>>833
それです。私の求めていたものは。
わざわざご自分のWebスペースにアップしてくれたのでしょうか?
ありがとうございます。

それをローカルに欲しいのですが、どうにかならないものでしょうか。
Web巡回ソフトなどで取得を試みたのですが、どういうわけか取れませんでした。


837 :デフォルトの名無しさん:05/01/21 16:25:59
>>836
あんた、ここ知らないの?
http://www.archive.org/

838 :836:05/01/21 17:07:07
>>835
Ant では検証は行われないということですか?
抄訳(かどうかはしりませんが)とはいえ、私が訳せば誤訳になりますゆえ。

>>837
知りませんでした。
たった今、ググって知りました。

839 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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:05/01/22 00:58:21
自己解決しました。
ttp://homepage1.nifty.com/cotton100/jphonejava.htm
にのってました。

843 :デフォルトの名無しさん:05/01/22 01:12:39
>>825
まじすか!
仕様が公開されるまで3Gに変えれんなぁ

844 :デフォルトの名無しさん:05/01/22 10:13:10
Vアプリでポリモーフィズム使ってる人いる?
容量とか処理速度とか問題にならない?

Vアプリを外注したらif文だらけのコードがあがってきたんだが、
これって普通?

845 :デフォルトの名無しさん: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 :デフォルトの名無しさん:05/01/22 14:16:47
可読性を考慮したり、奇麗にまとめようとすると、サイズと動作速度の問題が出てくる。
最近はpoorな環境での経験がある人が少ないのかな。

847 :デフォルトの名無しさん:05/01/22 15:17:35
>>845
50KBとかの頃ならともかく、今ぐらいの容量があるなら、もうelseまで削って
容量を稼ぐより、可読性を高めたほうがいいような気もする。

848 :デフォルトの名無しさん: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 :デフォルトの名無しさん:05/01/22 19:45:55
auもMIDP2.0採用してくれたらいいのに

850 :デフォルトの名無しさん:05/01/22 20:39:25
同意。
勝手アプリがダメな上に移植も面倒、アプリのラインナップも乏しいBREWはとっとと去ね

851 :デフォルトの名無しさん:05/01/23 01:01:24
protected synchronized void keyPressed(int keyCode) {
int action = getGameAction(keyCode);


852 :デフォルトの名無しさん:05/01/23 01:05:13
すみません間違えて投稿してしまいました。
Canvasクラスにおいてクリアキーが押下されたときの処理をしたいとき、
どうすればよいのでしょうか?
ひょっとしてクリアキー、スケジュール/メモキーなどの区別はできないんですか?

protected synchronized void keyPressed(int keyCode) {
int action = getGameAction(keyCode);

}


853 :デフォルトの名無しさん:05/01/23 01:08:59
>852
auだと、クリアキー押したとき、keyPressedの引数には0が入ってくるので、それで判断。
いきなりgetGameAction()に渡すと例外キタ━━━━(゚∀゚)━━━━ッ!!になるのでちうい。

854 :デフォルトの名無しさん:05/01/23 01:35:01
>>845
>if〜else if〜else ifってするよりもif〜if〜if〜って書いたほうがバイトコードは小さくなるから、
そうなんだ。でもそれって実行速度は遅くなりそうだが・・・

855 :852:05/01/23 01:41:22
>>853
vodaのP5ですがクリア押したときのkeyPressedの引数は-2147483646となっているようですが、
この値で判断してしまってよいのでしょうか?

GameAction()に渡した後は0になりますがスケジュール・メモキーなどと区別がつかなくなってしまいます。


856 :デフォルトの名無しさん:05/01/23 01:52:40
>>855
仕様外なので、機種依存です。

857 :852:05/01/23 01:56:40
>>856
機種依存ですか。
なるべくクリアキーは使わないほうがよさそうですね。

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


858 :デフォルトの名無しさん:05/01/23 11:31:01
902shで 文字表示させるのにg.HCENTER|g.VCENTERを使うと表示されないのは仕様ですか?
g.LEFT|g.BOTTOMだと表示されるのに・・・


859 :デフォルトの名無しさん:05/01/23 15:17:48
一般人には3Gの開発環境なんて手に入らないのでわからん

860 :デフォルトの名無しさん:05/01/23 15:41:02
>>858
drawStringでVCENTERは機種依存だと思う。MIDPの本では使えないと書いてる。
EZの古いのでダメだった事有り。HCENTERは使えるはず。
ダメならフォント情報取得してズラシなされ。


861 :840:05/01/24 06:23:12
質問の仕方が悪かったのか、スルーされてしまったので、もう一度質問内容を変えて書き込みます。

現在、iアプリで動作していた3Dワイヤーフレーム横回転するアプリを、Vアプリに移植してます。
で、回転の部分でうまく動いてくれません。

このアプリではフレームの他にフィギアもくっついて回転するので、AffineTrans#rotationY() などの関数を使用せず
Vector3D の X & Z 座標を三角関数で計算させた後に、AffineTrans#setViewTrans() を行ってます。

iアプリではフレームとフィギアは中心座標を基準として横回転しているのに、
Vアプリではカメラ座標を中心としてフレームとフィギアが横に移動(自分の周囲を回転)してしまいます。

どうも、iアプリとVアプリでは視点か参照点の扱いが違うような気がするのですが、そんな事ってありますかね?
それとも、何か別の問題点があるのでしょうか?

どなたか、ヒントでも教えて頂けないでしょうか?


862 :デフォルトの名無しさん:05/01/24 10:46:44
>>861
それ、フィギュアを回転させてるんじゃなくて、カメラを回転させてない?

863 :デフォルトの名無しさん:05/01/24 15:19:47
>>861
iとかVの経験無いんだけど、カメラ動かして物体の周りから見ようとしたら、
物体中心を原点に持ってきて、視点を原点中心に回転させ、視線を原点向きに
する必要があると思う。別に回転中心は原点じゃなくてもいいけど。

物体そのものを回転させるとしたら、視点視線固定して
物体中心を基準に座標を回転させればいいんだけど、
Figureだけならともかく、Primitiveと合わせた物体中心を求める必要がある。
で、オイラは物体中心に回転させる方法シラネ(自作ならできるかも)。
全部Figureで作って、アクションで回転させるとかするしかないんじゃない?

864 :デフォルトの名無しさん:05/01/24 23:57:43
>>863
いや、ローカルなマトリックスをかければいいだけだから
>>861
視点と方向が逆になってるだけじゃね?

865 :デフォルトの名無しさん:05/01/25 12:03:50
Figureって3D座標系の原点以外に置けたっけ?

866 :デフォルトの名無しさん:05/01/25 12:54:05
>>865
視点の方を動かす必要がある。

867 :デフォルトの名無しさん:05/01/25 13:46:59
>>865>>866
メソッド無いけど
m03にx座標
m13にy座標
m23にz座標
で動かせる

868 :デフォルトの名無しさん:05/01/25 15:01:52
>>861
iアプリの AffineTrans#lookAt() と、
Vアプリの AffineTrans#setViewTrans() では、第2パラメータの扱いが違うかも。

iアプリでは注目点を指定するが、Vアプリでは視線ベクトルを指定するように
なってるんじゃないかな?

Vアプリは作ったことがないんで、BREW版のAPIからの推測だが・・・

869 :861: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 :デフォルトの名無しさん:05/01/26 01:14:11
ezのphase2とかでソフトキーが押されて離す瞬間を
取得することはできますでしょうか?

phase3ではキーの押下状態はgetKeyState()で取得できますがこれをphase3未満で
実現するには、ソフトキーの離された瞬間が欲しいんです。
CommandListenerでは押された瞬間しかわからないんで悩んでいます。


871 :868:05/01/26 03:01:29
>>869
視点(p0)と参照点(p1)の位置ベクトルがわかってるなら、視線方向ベクトルは
(p1-p0)するだけっしょ。

872 :デフォルトの名無しさん:05/01/26 04:53:35
同じマスコットカプセルなのに仕様が違うのか
メソッド名が違う時点で変だけどw

873 :デフォルトの名無しさん:05/01/26 11:01:44
MIDP APIの 日本語リファレンスを探しています。

以前、日本語化したサイトが存在したのですが、みれなくなってしまいました。


874 :デフォルトの名無しさん:05/01/26 11:27:23
>>873
閉鎖しました。
がんばって英語を読んでください。

875 :デフォルトの名無しさん:05/01/26 12:27:58
>>873
>>833

876 :861: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 :デフォルトの名無しさん:05/01/26 20:54:03
>>877
少なくとも現時点では、、、
1.音声データを(アプリに)取り込む方法がない

879 :質問です!:05/01/26 21:09:58
>>878さん
さっそく、ご質問に答えていただき、ありがとうございます。
それではTV電話状態の音声抜きで画像のみとかは
可能ではないでしょうか?

880 :デフォルトの名無しさん:05/01/27 01:29:42
何するにしても対応するAPIがあるかどうかだね。
ケータイでできることが何でもAPIとして用意されてる
ワケじゃないからね。
具体的に,このAPIとこのAPIを組み合わせて
こういうことできませんか?って聞いた方がいいのでは。
ボーダだと,APIの組み合わせ次第では審査通らない
こともあるし。位置情報+通信とか。アドレス帳取得+通信とか。

881 :デフォルトの名無しさん:05/01/27 05:02:43
>>877
Vの場合だが、
・端末からサーバへの問い合わせ一方方向なので、定期的にチェックしにいくとしてもレスポンス的に不利。
・音声を出す仕組みは、現段階のAPIでは動的にSMAFデータを作る以外考えられない。
・音声を入力する仕組みは、音声認識させるしかない。音声認識パターン辞書をアプリないに持つ必要がある。

じゃ、がんがってね。

882 :デフォルトの名無しさん:05/01/27 10:56:36
>>877
TV電話にしろ、今のカメラの機能ってさ
 カメラ呼び出し(アプリ中断)>端末のカメラ機能で撮影>(再開)写真取得
だからこれだけで10秒はかかるし、操作が面倒だと思うのでムリポ。

個人的な意見かもしれないけど、パケホだからって通信をしまくるのはどうかと思う。
もちろん自分で用意するサーバーの負担が大きくなるのもそうだが
現状では携帯端末とサーバーが直につながってるわけじゃなく、
キャリアのサーバにパケット送ってサーバ間でHTTP通信してるとかだと思うので
キャリアのサーバにも同じくらい負担が増える。ので、いずれ制限がかかる。
現状でもauのWINには1回/分の制限がある。さらに一日の総通信量にも。

もうちっと端末・通信環境が整うまで待つ必要があると思うよ。
で、その頃にはそれっぽいAPIも追加されてくるはず。
今はせいぜい文字チャットで1分強毎にチェックぐらいが精一杯っぽい。

883 :デフォルトの名無しさん:05/01/29 00:29:14
ちょいと、Vアプリで質問です。
アプリの一時停止してから復帰すると、リソースから読み込んだ画像が「NullPointerException」になります。
まあ、ここら辺は仕様らしいんで仕方がないのですが、どのように復帰処理を実装するべきかと悩んでいます。

皆さんは復帰時に「NullPointerException」の対応ってどうされてますか?


884 :デフォルトの名無しさん:05/01/29 00:49:15
>>883
そんなのなったことない。
ちなみに公式で出してるけど苦情もない。

885 :デフォルトの名無しさん:05/01/29 23:11:59
iアプリとサーバーとをJavaで通信させたいのだが、
サーバー側のプログラムはservletを使うしかないのでしょうか?

886 :デフォルトの名無しさん:05/01/29 23:37:24
iアプリはスレ違い

887 :885:05/01/29 23:41:41
ごめんなさい。

888 :デフォルトの名無しさん:05/01/30 10:18:25
>>883
待ち受けで同じ現象でたことある
俺の場合は一時停止するときに全部のリソースを開放して
復帰時に作り直すようにしていた

ちなみに待ち受けの場合でも
折り畳み一時停止→着信で自動復帰
などの特殊ケースのときしかこの現象は起きなかったので
通常のアプリで起きているならstartAppやコンストラクタの処理を見直した方が早いかも

889 :デフォルトの名無しさん:05/01/30 16:40:54
>>883
まじれす
ガッすばいい

890 :デフォルトの名無しさん:05/01/30 22:29:41
VodaフォンP5ですがヒープメモリのサイズを取得することはできますか?

891 :デフォルトの名無しさん:05/01/31 00:07:44
最終的にVアプリを作りたく、JAVAの勉強しています。
そこでつまづいているのはスレッドです。
表面上のことは分かっているのですが、本質的なことが何度本を読んでも分かりません。
たとえば、canvasを継承し、
Runnableをインプリメントしたクラスの
run()にrepaint()を書き込んだ場合、
二つのスレッドが同じ画像の描画を交互に描画しているのでしょうか?
自分は例えば、スレッドAで画像処理をさせ、スレッドBで通信の処理をさせたいのですが、
そういうことは可能なのでしょうか。

上記のようなことが理解しやすいお勧めの参考書があれば教えてください。

892 :デフォルトの名無しさん:05/01/31 01:04:52
>>890
とりあえずCLDCのAPIを読んでみて欲しいのだが
RuntimeのfreeMemoryとかtotalMemoryとかを使えばエエ。

>>891
他にrepaintを連続的に呼んでるなら知らんけど、無ければrunのだけ。1つ。
あと、repaintは再描画を要求するもので、実際描画するのはメインスレッド。
携帯アプリでは通信中停止するっぽいからそれは無理(多分)。
通信こまめに分割して描画・通信を繰り返すしかないと思う。
とりあえず参考書の前にGoogleとかで記事探ってみるといい予感。

893 :デフォルトの名無しさん:05/01/31 03:35:08
>>891
通信スレッドからrepaint()が呼ばれるのか?
通信中はそこでそのスレッドの処理が止まるんだから呼びようが無いと思うんだが

>スレッドAで画像処理をさせ、スレッドBで通信の処理をさせたい
可能だし、実際やってるアプリもある

894 :890:05/01/31 07:33:53
>>892
どもです。Javadoc見てみます。

895 :891:05/01/31 07:39:37
>>892
>>893
ありがとうございます。
やっぱり何もわかってませんね。
スレッドが理解できる迄
先に進みたくないので、
色々探してみます。


896 :883:05/01/31 18:58:02
>884,888-889
レスありがとう〜。

startApp でやっていた処理をコンストラクタに移して、
pauseApp が呼ばれたらフラグを立てて、
startApp で pauseApp がつけたフラグを調べてから、canvas 系クラスの復帰処理を実行するようにしました。

そしたら何故か直った…。
canvas 系クラスの復帰処理って、ただ return するだけの空メソッドなんだけどなぁ…。
もしかして、MIDlet 系クラスから参照をしてなかったから、最適化対象になっていたのか?

だれか、ここら辺に詳しい方います?


897 :デフォルトの名無しさん:05/01/31 21:32:16
http://headlines.yahoo.co.jp/hl?a=20050131-00000026-zdn_m-sci
JSCLまたVerUpしそうだね。

898 :デフォルトの名無しさん:05/01/31 21:34:32
startAppは初期起動時及び再開時に呼ばれるので
その辺が絡んでるだけだと思いますよ
初期のみにしなければいけないことがコンストラクタに移動したことで
解決したのではないかと思います

899 :883=896:05/02/01 10:56:45
>898
その通りでした。
一回の修正で何でもかんでもやろうとして、どこが解決に至った修正なのかが分からなくなってました
(static 宣言してあるクラス変数を、復帰時に null チェックしていたから回避出来るかと思っていました)。

コンストラクタはきちんと使わないとダメですね。
ご指摘ありがとうございました。


900 :デフォルトの名無しさん:05/02/01 23:29:16
900様のおな〜〜〜〜り〜〜〜〜〜ぃ

901 :デフォルトの名無しさん: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 :デフォルトの名無しさん:05/02/02 11:20:04
OutputStream out = null;
out = Connector.openOutputStream( "storage:" );

でいけないか?

903 :デフォルトの名無しさん:05/02/02 17:09:39
>>901
原因が分からんことないでしょ。例外投げっぱなしにしてるからじゃない?
try〜catch時のExceptionをtoStringしてCanvasにdrawStringとかすればいいですよ。
ソース特におかしな所無いけど、「直接記述」の部分が気になる(どういう意味?)のと
単純に端末が対応してないとかってない?Phase3機でやってる?
あと エミュは探せばあるんじゃない?非公式に という発言はダメ?

904 :デフォルトの名無しさん:05/02/02 19:43:19
Phase3エミュ一回一般公開してたとき偶然取れた。あれはいいね。普通のエミュじゃ遅すぎて話にならなかったからな。でもエラーは
try{〜}catch(Exception e){System.out.println(e)}
しとかないと終了しちゃうんだよね

905 :901: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 :デフォルトの名無しさん:05/02/02 23:46:06
>>905
MIDlet-X-Storage-Size: 204800 は*.jadに書くんだよ
あと200kもつかっていいんだっけ?

907 :デフォルトの名無しさん: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 :デフォルトの名無しさん:05/02/03 23:42:30
>>908
http://developers.vodafone.jp/dp/

910 :901: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 :デフォルトの名無しさん:05/02/05 15:42:51
国語辞典調べてから考えて

915 :デフォルトの名無しさん:05/02/06 00:59:23
>913
お前と俺とは同期の桜

916 :デフォルトの名無しさん:05/02/06 17:33:15
EZからVに移植しようと思っているのですがVアプリを公開するにはアプリゲットかバンダイに作者登録しなくてはならないようなのですが、どちらのサイトにも登録したい場合には二重登録すればよいのでしょうか?

917 :デフォルトの名無しさん:05/02/07 01:31:17
>>916
うん。

918 :デフォルトの名無しさん:05/02/07 04:00:57
分かりました。ありがとうございました。

919 :デフォルトの名無しさん:05/02/10 14:35:42
CLDC には Comparable インターフェース や Arrays クラスがないようですが、
皆さんは、クラスの配列のソートはどのようにしているのですか?

やはり手でやるしかないのでしょうか?

920 :デフォルトの名無しさん:05/02/10 15:38:45
時々同じ質問が出る。答えは「ソートは自力でやる」

921 :デフォルトの名無しさん:05/02/10 19:21:39
スレッドを走らせてRuntime.getRuntime().freeMemory()の値を表示していくと
どんどん減っていって0までいくとまた増える、が繰り返されるんですが、
どうすればよいですか?

922 :921:05/02/10 19:24:14
あ、ひょっとして定期的にRuntime.getRuntime().gc();
でガベジコレクションしてやらないといけないんですか?

923 :デフォルトの名無しさん:05/02/10 20:58:12
>>921
今の動作に問題なければ何もする必要ないよ。
gcで解決って問題ではない(実行されるとは限らん)が、多少は改善されるかもね。
スレッドが走ることでメモリが減らない、つまり動的にインスタンスを作らないのが一番。

924 :921:05/02/10 21:29:00
>>923
わかりました。ソース見直してみます。

925 :デフォルトの名無しさん:05/02/10 21:46:33
省電力なVアプリってどうやって作るんですか?
電池を消費しないようにするテクニックなどがあったら教えてください。

926 :デフォルトの名無しさん:05/02/11 02:12:46
>>920
やっぱりそうですか。
ソートくらいあってもいい気はするんですけどね。

クイックソートとか手で作るのだるいなぁ。

927 :デフォルトの名無しさん:05/02/11 02:26:15
メモリのことを考えると、ヒープソートとかの方がいいんだろうか。
まぁ、たかだか数百個程度の配列なら、どんな方法でも大差ないか。

>925
アプリ上は走りっぱなしのスレッドをなくせばすむけど、
そうしたとしても省電力になるかどうかは結局VM次第になるような気がする。
バックライト制御して常に消した方が効果は大きいような。

>924
ガベコレで回収しきれなくなったとかガベコレ時にスレッドが一時停止して困るとかでない限り無視でいいと思う。
回収しきれない→ヒープメモリを動的に使わないようにする
一時停止で困る→ガベコレタイミングを考えてgc()を実行

928 :デフォルトの名無しさん:05/02/11 17:41:08
>>925
描画を省くとけっこう違うよ。
あと、sleepだね

929 :デフォルトの名無しさん:05/02/11 22:06:16
VodafoneのP5型には、動画の再生クラスとかないんですか?
リファレンス見たけど見つからなかったもので・。

930 :デフォルトの名無しさん:05/02/11 23:17:56
>>929
FileUtilityのplayでネイティブ側で再生するしかないかな。

931 :デフォルトの名無しさん:05/02/11 23:49:43
>>929
情報サンクス!
さっそく試してみます。

932 :929:05/02/12 00:05:45
む、エミュレーター上では、FileUtilityのplayで
動画が再生されるとこは見れないのですか?


933 :デフォルトの名無しさん:05/02/12 00:40:19
「アプリが一時停止から復帰した」
っていう判定はどうやるんでしょうか・・。
タイトル画面とかで毎フレーム描く必要ないですよね。
でも、一時停止させてからアプリに戻ると画面真っ白でかっこわるいし・・。



934 :デフォルトの名無しさん:05/02/12 00:59:40
ご、ごめんなさい。
>>638
にモロ書いてありました。失礼しました。

935 :925:05/02/12 02:10:18
>>927, >>928
バックライト制御とsleepは思いつきませんでした。
ありがとうございました。

936 :デフォルトの名無しさん:05/02/13 20:47:52
なんだよ。こっちにあったのか。携帯アプリ板で必死に探したよ

937 :デフォルトの名無しさん:05/02/13 22:03:53
auのシューティングで、背景を宇宙(黒で青の星がたまに写る)から地上(よくあるなが〜い絵?をスクロールさせてるような)
に換えたいのですが、あれは本当になが〜い1枚絵をスクロールさせてるんですか?
どうやってやるんですか?

938 :デフォルトの名無しさん:05/02/13 22:57:40
今気づいたのですが、Vodafone(P5型)でStorageConnectionを使い、
取得したメモリカードのパス「"/mc/"」は、メモリカードの直下ではなく、
ピクチャフォルダ等がある「データフォルダ」を指しているのですか?
そうなると、メモリカード直下にある、「SD_VIDEO」フォルダ等に
アクセスする手段はないということでしょうか?

939 :デフォルトの名無しさん:05/02/14 00:07:21
>>938
うん。

940 :デフォルトの名無しさん:05/02/14 00:24:22
>>937
画面サイズの画像を複数用意し、常に連続する2枚をスクロールすれば
繋がってるように見えるはず。別にもっと大きな画像でもつなぎ目で2枚書けばいい。
とりあえずMIDPというよりゲーム作成系の記事探してみれ。
携帯アプリでの注意点としてはメモリ容量とImageのサイズ制限。
機種によるけど1枚絵は無理だと思う。


941 :デフォルトの名無しさん:05/02/14 00:38:44
>>939
ということは、SD_VIDEOフォルダ内の動画は再生できないと
いうことですか・・・。ああ鬱だ、氏のう。


942 :デフォルトの名無しさん:05/02/14 11:26:33
>>937
RPGのマップみたいに、タイルを敷き詰めて1枚の大きい画面にしる。

943 :デフォルトの名無しさん: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 :デフォルトの名無しさん:05/02/14 23:53:21
誰かさかきけい氏のMIDP APIの日本語リファレンスをうぷしてくれ〜!

http://web.archive.org使ってもindex.htmlのとこしか
見れません。


947 :デフォルトの名無しさん:05/02/15 00:09:41
>>946
他人が作った物を勝手にアップしていいとでも?

948 :デフォルトの名無しさん:05/02/15 00:18:29
>>947
やはりそれはいけませんよね・・・orz

949 :デフォルトの名無しさん:05/02/15 00:52:48
公開してたものだし、いいんじゃなかろうか。

950 :デフォルトの名無しさん:05/02/15 01:07:23
良い訳無いと思う。

951 :デフォルトの名無しさん:05/02/15 06:22:47
>>943
たぶんShift-JISとUTF-8だけ

952 :デフォルトの名無しさん:05/02/15 11:25:46
権利の話をすると、そもそも翻訳してそれを無許可で公開する時点で(ry

953 :>>943:05/02/15 13:54:29
>>951
Thx!!

954 :943: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 :デフォルトの名無しさん:05/02/15 19:33:42
ここは親切な板ですね。携帯板なんかヒドイ・・・
んで、ez2のアプリってパソコンからは絶対無理?

957 :デフォルトの名無しさん: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 :デフォルトの名無しさん:05/02/15 21:54:50
生のバイナリで送ったら?
わざわざエンコする必要ないでしょ

960 :デフォルトの名無しさん:05/02/15 22:41:18
塚、忍者でタグつかってEZアプリ公開すんのって絶対無理ですか?
いろいろ探したんですが・・・

961 :デフォルトの名無しさん:05/02/15 23:02:15
>>959
返答ありがとう^^
それでやってみたんだけど、受側のPHPがPOSTでデータがくるので
エンコされてると思うみたいでデータが壊れちゃうのよ。
どうしたらいい?



962 :デフォルトの名無しさん:05/02/15 23:15:48
携帯Javaってnative宣言のメソッドは実装できるの?KVM/CLDCレベルの話で

963 :デフォルトの名無しさん:05/02/15 23:53:27
>>961
新しめのPHPならphp://input
古いならHTTP_RAW_POST_DATAとalways_populate_raw_post_data

あとはググってチョ

964 :957: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 :デフォルトの名無しさん:05/02/16 01:24:43
>>946
普通に行けない?
何時の間にか行けるようになってたんだが…きのせいか?

ttp://web.archive.org/web/20040113080358/godwood.allnet.ne.jp/vioret/midpapi/

967 :デフォルトの名無しさん:05/02/16 06:24:28
そこは行けたり行けなかったりするね。


968 :デフォルトの名無しさん:05/02/16 11:41:20
自分で翻訳しろ、とかいってみる。俺はやったぞ。

969 :デフォルトの名無しさん:05/02/16 16:50:55
DoCoMoのサイトでiアプリ用のAPIリファレンスをDLするといいかも。
もちろんそのまま使えるわけでなく、翻訳する手助けになるってことだよ。

970 :デフォルトの名無しさん:05/02/16 21:43:14
ボーダです
ダウンロードしたファイルが同じ名前だと保存不可
という不都合が報告されたのですが
この場合直す名前とは
jad&jarの方でしょうか?
それともMIDlet-Name:の方でしょうか?

また調べてみたところV801SAの不都合ぽいのですが他の機種でも起こりうるのでしょうか?
他のキャリアでは聞いたことのない不都合でしたので

971 :デフォルトの名無しさん:05/02/16 21:56:22
とりあえず両方直すことにした
うぉぉボーダの公開ってめんでぇーーー

972 :デフォルトの名無しさん:05/02/17 05:20:08
>>970-971
MIDlet-versionをちゃんとかけっつーに。


973 :デフォルトの名無しさん:05/02/17 12:28:05
AuのHPを見ると端末がBREW対応・Java非対応になってきています。
javaのEZアプリって今後利用できるんでしょうか?
(たとえばW21CAとか)


974 :デフォルトの名無しさん:05/02/17 14:20:41
できまひんよ。
BREW上のJAVAVMの可能性も低いです。
勝手系はFLASHに流れると思います。

975 :デフォルトの名無しさん:05/02/17 15:45:38
auはBREWへ移行、vodaはキャリアがゆっくり死につつある
新興勢力はまだまだ力不足

がんばれ。超がんばれ。

976 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:05/02/17 18:21:27
教えてクンいらね。
てか、そんなのすら調べられない奴が、言語を使えるとは思えない。
ビルド方法を解説してるサイトくらいいくらでもある。
読め!

981 :デフォルトの名無しさん:05/02/17 18:30:12
よんでもよくわからねーんだよ!!!

やさしくおしえてくださいこのやろう!!!

982 :デフォルトの名無しさん:05/02/17 18:34:40
やだ!!


983 :デフォルトの名無しさん:05/02/17 18:35:42
読んでも良くわからない(読めない)なら、止めとけ。
この先もっと大量に調べなきゃならないことが出てくる。

984 :デフォルトの名無しさん:05/02/17 18:40:48
おーしーえーてー!!!!

ほんと実行ファイルが出来る環境が出来るだけでいいんです!!

985 :デフォルトの名無しさん:05/02/17 19:36:30
解説してるサイト、ガイドを読めないのに、僕らの説明なら読めるのか?
僕らが親切に教えた所で必要な手順変らないから説明内容は一緒だぞ?
とりあえず、どのサイト・ガイドを参考にして、どこまで出来たか、ぐらい書け。

僕のお勧めは綿100号さんのサイトで紹介してる、kjx作成ツール使う方法。
もしくはEclipseプラグインでもPDF通りにやれば出来そうなもんだが・・。

どっちにしろレスで説明できるほど薄い内容じゃない。
本当に分からない部分、極一部まで絞って質問してみれ。
今度1から分からないとかぬかすようなら完全無視。

986 :デフォルトの名無しさん:05/02/17 19:39:42
誰か海外の端末のNokiaに詳しい方教えてください。Nokia7210で
サウンドを流そうとすると曲の最後まで再生されずに曲が途切れ
てしまいます。サウンドのデータ容量が関係してるみたいですが、
詳しい原因を知りたいので、詳しい方教えてください

987 :デフォルトの名無しさん:05/02/17 19:45:57
ttp://developers.vodafone.jp/dp/tool_dl/java/tech.php
にある開発ガイド読みなさい

はい終了

988 :デフォルトの名無しさん:05/02/17 19:46:42
>>987>>984

989 :デフォルトの名無しさん:05/02/17 21:05:36
んー、ボーダフォンの開発ガイドを見てどうすればいいのだろ
う・・・。Nokiaのエミュレーターだと音は鳴るんですよねー。
実機で再生するとうまくいかないわけで。。。別のNokiaの端末
では同じ音でも再生されるわけで。。。誰か原因教えて

990 :デフォルトの名無しさん:05/02/17 21:10:21
誰か教えてあげて。
こんな話題で次スレが始まると悲しいので。

991 :デフォルトの名無しさん:05/02/17 23:54:51
>>989
ちがうよぅ>>998
そしてワカラン。スマヌ

992 :デフォルトの名無しさん:05/02/18 01:29:38
次スレは(汗)?

それと質問。
auのQcelpを使って人の声を出すときに、どこかで自分の欲しい声を作ってくれるフリーソフトが有ったと思うんだが知ってる方はいらっしゃいませんか?
もしかしたらSMAFだったかも。
探しているのだが見つからない。

993 :デフォルトの名無しさん:05/02/18 13:06:51
yasuさんとこのレースゲーム、逆コンパイルしてー

994 :デフォルトの名無しさん:05/02/18 23:16:30
勉強にとauのシューティングゲームを逆コンして見ているのですが、
当たり判定はどのように書かれてますか?他のはわかるのですが、当たり判定が全然わかりません!

995 :デフォルトの名無しさん:05/02/18 23:27:44
勉強の仕方が根本的にずれてんだろ
どの道スレ違いだ

996 :デフォルトの名無しさん:05/02/19 00:07:47
こ の ス レ は 何 を す る ス レ で す か ?

997 :デフォルトの名無しさん:05/02/19 00:21:29
タイトル通りさ。
CLDC+MIDP の話をするところだろ。


>994
http://www.amazon.co.jp/exec/obidos/ASIN/4797327316/
これでも読んでろ。


998 :デフォルトの名無しさん:05/02/19 00:43:15
eclipseでプリプロセッサ使ってるひといる?

999 :デフォルトの名無しさん:05/02/19 00:50:23
にゃんにゃん!!!!!!

1000 :デフォルトの名無しさん:05/02/19 00:51:26
1000

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

321 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)