iモード携帯電話用Java(iアプリ) Part13
6 :
デフォルトの名無しさん :2006/11/22(水) 13:32:47
一乙
system.out.print("
>>1 乙");
while(res<=1000) System.out.print("
>>1 乙");
10 :
934 :2006/11/23(木) 00:48:01
helloworld.terminate();
System.out.printって実機では何も意味無いよね? 無いからいいんだけどさ。
>>12 トレースて。初めて知った。
機種依存バグとか判別するのに使えそうだな。ありがとう。
赤外線使って連続してデータ送ろうとすると2つめからデータが壊れてるんだが 何かデータを制御(?)しないとダメなの?
iアプリでRSAを作成したいんだが、とりあえずBouncy CastleのHPから J2ME用の lcrypto-j2me-134.zip をDL。 展開すると zipで固められたclassファイルとソースファイルが入ってるんだけど、 どっちをつかえばいいのかな? 外部ライブラリの使い方がいまいちわからなくて・・・
>>14 そんなこと無いはず。
連続してデータを送るって部分のソースの書き方が
何か間違ってるか、受け取り方が悪いか・・・
>>15 ソースをオススメする。
17 :
14 :2006/11/23(木) 21:53:49
2つの文字列を受け取るときにgetContentLength()を使ってるのが原因かな? 赤外線通信について詳しく解説してるサイトとか無いかな?
18 :
15 :2006/11/23(木) 22:19:03
レスありがと。 ソースつかってやってみたけど、 とりあえずEclipseで、インポート→ファイル・システム で ソースを全部インポートするといくつかのソースがエラーがでてるんだよね。 エラーの内容見てみると FileInputStream を型に解決できません。 FileNotFoundException を型に解決できません。 IllegalStateException を型に解決できません。 それでソースみると、 import java.io.BufferedReader; import java.io.FileInputStream; とかimportしてるんだけど、これってJ2MEでは使えないよね? どうしたらいいのかな?
BufferedReaderはcom.nttdocomo.io.BufferedReaderで代用 FileInputStreamはConnector.openを使ってソース直してなんとかする
>>17 ドコモの開発ガイドじゃダメなの?ちゃんとサンプルソースも載ってるし。
連続してデータを送るってのは、2回PUTしてるのかと思ってたけど、
2つの文字列ってことは もしかして違う?
>>18 RSAやるのに全てのクラスが必要な訳ではない。
org.bouncycastle.crypto.test.RSATestとか見て
(用途に合わせて参照するTestクラスを探して)
必要なクラス以外取り除けばスッキリ。
21 :
15 :2006/11/24(金) 03:20:32
必要なクラスだけつかってやってみる。 ホント助かった。 ありがと
22 :
15 :2006/11/24(金) 06:40:21
とりあえず最低限のクラスだけで実行してみたんだが、 newでオブジェクトを作成したら無事にコンパイルはできるけど 実行したらエラーが起きてしまう。 インポートしたクラスファイルは、 デフォルト・パッケージ で sample.java java.math の BigInteger.java java.security の SecureRandom.java org.bouncycastle.crypto の Digest.java org.bouncycastle.crypto の ExtendedDigest.java org.bouncycastle.crypto.digests の SHA1Digest.java org.bouncycastle.crypto.digests の GeneralDigest.java で、sample.javaのなかで BigInteger pubExp = new BigInteger("11", 16); とやると携帯画面が消えちゃうんだよね。 でもおなじようにクラスをインポートしてJavaアプリとして作成したら問題なくうごくから iアプリとして作る場合はほかになんか設定とかあるのかな?
>>前スレ997 入門書読んだ程度のレベルでいきなり外部の偽装画像からの読み込みは 大変だから段階を踏んで作って行きなよって言ったつもりだったんだが。 外部データがどうこう言うよりもテキストデータの処理そのもので詰まるはず。 まずはそこをやってみてダメなら相談するといい。 とりあえずソースに直接テキストデータを書き込んで それを思い通りに描画できるようになりなさい。 それが出来たらリソースに用意したテキストファイルを読み込み 画面表示ができるかどうか。それが無事できたら初めて 偽装画像からのテキスト取り出しにかかるといい。 作りたい強い意思があるならもっと段階踏んでチャレンジしていくべき。 俺の勘違いで文字の処理そのものはまったく平気で偽装データの読み込みだけが できないんだ!って言うのならそのデータ読み込みをしている部分の ソースをある程度提示してくれればアドバイスのやり方はあるかと思うよ。
25 :
デフォルトの名無しさん :2006/11/24(金) 21:05:21
ところでSDカードのデータリードって出来るの? 禁則事項です?
>>22 java で始まるパッケージ名はSunに予約されているので、
java.math.BigInteger
java.security.SecureRandom
はパッケージ名を変更する必要がある。
eclipse ならリファクタリングで一発
27 :
デフォルトの名無しさん :2006/11/25(土) 01:06:41
以下のように、ユーザーに携帯内の画像を選んでもらう時、 画像のサイズからかUIException.NO_RESOURCESの エラーがでて困っているんですが、 これって、端末の画面サイズ以上はダメ、とか ○○kb以上の画像はダメ、とか決まってるんでしょうか? ImageStore is = ImageStore.selectEntry(); imgId = is.getId();
28 :
14 :2006/11/25(土) 11:12:52
>>20 2回PUTってのが盲点だった。
そりゃ2回別々に送信すればgetContentLength()で巻き込まれないよなぁ。
ありがとう。
>>20 > 必要なクラス以外取り除けばスッキリ。
そんなのproguardにやらせろよ
30 :
15 :2006/11/25(土) 14:44:32
>>26 パッケージ変更したらうまく動作したよ。
eclipseって便利だな。
これでなんとかやってみれそう。サンクス
Panelを使い、KeyListener使ったときにDisplay.KEY_CLEAR使っても エミュ上でクリアキーで動かないのは仕様? それとも実際に携帯上だと動くの? 同じ内容を他のキーに設定したら動くから実装ミスではない。 それとも俺が間違ってて他にやり方があるの? 解決法があれば教えてください。
ソフトキー1を押すとメニュー画面を表示するようにしたいです。 メニュー画面はどのように製作したらいいか知恵を貸してを頂きたいです。 パネルをDisplay.setCurrentで切り替えた際に古いPanelなりCanvasなりに 描画したものを破棄したい場合はどうしたらよろしいでしょうか? よろしければご教授ください。
>>31 KEY_IAPPに変えると悩みは解決するかもしれない
前スレで俺が0x18と教えてやったろ。
キーリピートの判定みんなどうやってる?
>>33 レスサンクスです。
大体最近の機種は切り替えとクリアがかぶってることが多いからですかね?
それでもエミュ上ではクリアが動作しませんでした。
>>34 ごめんなさい。
タイマーとして時間を計るのはカレントタイム取得して、差を出すしかありませんかね?
60秒経ったら終了とかにしてみたいので…。
他に方法があったら教えていただけたら嬉しいです。
37 :
36 :2006/11/26(日) 00:45:44
自己解決したと思ったんだけど不可だった。 なんでだろう。 private count=0; private Timer time; private Label sec = new Label(); time = new Timer(); time.setTime(1000); time.start(); public void timerExpired(Timer source) { if(souce==time) { count++; sec.setText(" "+count+"秒"); sec.start(); //これ入れるかどうかわからなかったが…。 } ちゃんとadd(sec);はしているのにずっと0秒のまま。
>>37 sec.startってなんだよ?
timerの間違い?
動いてないのは恐らくリスナを登録してないから。
あとリピートタイマにしたいならタイマクラスにそれを設定するAPIあったはず。API嫁。
>>38 レスありがとうございます。
sec.start();はtime.start();の間違いでした。
元のソースが汚くて書き直したので混同してしまいました。
おっしゃるとおりリスナの登録を忘れていました。
的確にありがとうございます。
APIは読みながらやっているのですが知らないクラスばかりでどうも手際が悪いです。
繰り返しはsetRepeat()というやつみたいです。
ありがとうございました。
>>38 レスありがとうございます。
sec.start();はtime.start();の間違いでした。
元のソースが汚くて書き直したので混同してしまいました。
おっしゃるとおりリスナの登録を忘れていました。
的確にありがとうございます。
APIは読みながらやっているのですが知らないクラスばかりでどうも手際が悪いです。
繰り返しはsetRepeat()というやつみたいです。
ありがとうございました。
LocationProviderが一般人に使えるようになることはないのかね・・・ 標準のアプリが糞過ぎてムカつくのに手が出せない悔しさ
42 :
デフォルトの名無しさん :2006/11/26(日) 15:01:54
音楽ファイルってmidiから変換できると聞いたんですが、 何かツールがあるのでしょうか?
DoJa5.0 まだー?
MediaListnerを使用してiメロディを再生したいです。 hoge.mldというファイルでしたらどこに配置すればよいですか? bin以下とC:\iDKDoJa4.1\lib\multimediaに配置したのですが AudioPresenter#setSound: UIException(ILLEGAL_STATE) : Media sound is not usable com.nttdocomo.ui.UIException: Media sound is not usable com.nttdocomo.ui.UIException: Media sound is not usable という例外が吐き出されてしまいます。 解決法をご存知でしたらご教授いただけると嬉しいです。
すみません自己解決しました。 resフォルダに入れたら無事に鳴らすことができましたので一応報告しておきます。 それでは。
panel上に配置したLabelなどを一度全部破棄して再描画するにはどうしたらいいですか? dispose()も使えない様ですし新しく同じPanelを作って作り直すしかありませんかね?
Display.setCurrent ?
BGMとしてmldを永続的に再生する事ってできませんか? Timerの様にsetRepeat()が使えるわけでも無いようなのでどうしたら良いかわかりません。 どうか知恵をお貸しください。 よろしくお願いします。
>>47 レスありがとうございます。
出先からなので携帯から失礼します。
Display.setCurrent()ですと例えばpanel1からpanel2に切り替えまたpanel1に切り替えると
切り替えた時点の情報を維持したまま画面に表示してしまいます。
新しくインスタンス化すれば新しいパネルとして使えますが
新しくインスタンス化した場合は古いものはgcが破棄してくれるのでしょうか?
出来れば同じパネルを初期化して使いたいのですが…。
変数だけ初期化してもカーソルの位置は戻らないようです。
50 :
デフォルトの名無しさん :2006/11/27(月) 11:43:55
>>48 MediaListenerで見張って
AudioPresenter.AUDIO_COMPLETEが来たらすかさずplay()
>>31 クリアキーはキーグループが違う。
使いたい場合はキーグループの有効化を先に行わないと使えない。
詳細は前スレ。
>>35 リピートって言っても色々ありすぎてどれを指してるのか不鮮明。
連打系のリピートならキーバッファを用意してイベント事に格納する。
長押し系なら毎フレーム処理の頭でキー情報を取得する。
>>48 MediaListenerを登録してAUDIO_COMPLETEイベントを受け取ったら
もう一度再生する。曲が短い場合は負荷がでかくなるので注意。
>>50 ,51
レスありがとうございます。
BGMを鳴らしながらSEもなるんですけどってどうしたら(ryと書こうとしてましたけど
public void mediaAction(MediaPresenter source, int type, int param) {
if((source==boss)&&(type==AudioPresenter.AUDIO_COMPLETE)) {
boss.play();
}
}
としたら無事に目的のソースのみを再生する事ができました。
ありがとうございました。
53 :
デフォルトの名無しさん :2006/11/27(月) 19:04:30
>>24 前スレ997です。
アドバイス本当にありがとうございます!すごくうれしいです。
おっしゃるとおり、段階を踏めば、どこがわからないのかがわかってきました。
ソースにテキストデータを書き込んでCanvasで描画するのはできるようになりました。
この場合は
class MyCanvas extends Canvas{
public void paint(Graphics g){
g.drawString("hoge", 10, 30);
g.drawString("hogehoge"", 10, 50);
g.drawString("hogehogehoge", 10, 70);
}
}
という感じで良いですよね。
次の、リソースに用意したテキストファイルを読み込む場合となると、途端に分からなくなってしまいました…。
上の場合は、一行ずつ描画するのは逐一 drawString() で書いていけばいいということは分かったのですが、
ファイルを読み込んで描画する場合はどうなんでしょうか。
読み込みは、 Connector.open() を使って、その読み込んだものを同じく drawString() で描画するのですか?
このばあい、折り返しは自動ではできないのですよね?
Canvasでタイマーイベントが発生した場合、またはKEY_SELECTを 押した場合にどんどん文字を表示させていく事はできますか? public void paint(Graphics g){ g.drawString("hoge", 10, 30); g.drawString("hogehoge"", 10, 30); g.drawString("hogehogehoge", 10, 30); } とどんどん増やしていきたいです。 ShortTimerがでイベント発生時に毎回それごとのフラグを立てて repaint();と考えたのですがすこし回りくどい気がします。 何かいい方法があればよろしくお願いします。
55 :
デフォルトの名無しさん :2006/11/27(月) 23:59:03
>>53 >>54 俺様が親切丁寧にConnectorの使い方教えてあげたのにまだわからんかね?
g.drawString("hoge", 10, 30);
と
String str = "hoge";
g.drawString(str, 10, 30);
の
違いがわかるならば、str=readLine()の意味もわかるはずだ。
だがしかしお前の話方見てるとまだまだ遠いかなたの時限の話だ。
諦めて初心者サイトのソース手書きでコピーして覚えろ。
普通の後者のやり方はメインループを作って、フレーム処理をして回すもんだ。
何を言っているかわからんと思うから、がんばれ。
簡易版はこちら。
public void mainloop(){
Graphics g = getGraphics();
String str = "hoge";
while(true){
g.drawString(str, 10, 30);
str += "hoge";
try{
Thread.sleep(1000);
}catch(Exception e){}
}
俺も暇だな。
56 :
デフォルトの名無しさん :2006/11/28(火) 00:00:51
>>53 readLineはテキストファイルを段落毎に一行読み取る関数です。
行数を分けたいときはお前の言うように3度読んで3回書け。
57 :
54 :2006/11/28(火) 01:08:37
ごめんねごめんね俺
>>53 じゃないんだ…。
ただ例文にそのまま使わせてもらっただけで…。
>>55 ってことでConnectorについてはわかりません笑
違いはわかるけどさstr=readLine();の意味がわからない。
コンソール上での標準入力は慣例的に
String str="";
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
str=input.readLine();
として使うとしか覚えていないです。
この場合は意味が違ってくる気がする…。
スレッドは使ったことが無いけどThread.sleep(1000);で1秒間スレッド
(無限ループ)を止めてることはわかりました。
現状ではprocessEventでKEY_SELECTを受けた場合にclickをインクリメントrepaint();
switch(click)をしてケースで毎回書き直してるので結構手間ですね。
納期が明日なので時間があれば見直してみます。
ありがとうございました。
関係ないけどCanvasの方がグラフィカルに使えるのにPanelの方が使い勝手がいいのは…。
Panelですとlabel.setText("");とするだけでrepaint()もしてくれるのは魅力ですね。
Panelでフォントの色が変えれるかCanvasでLabelが使えれば便利なのにな…。
59 :
57 :2006/11/28(火) 02:13:02
>>58 気配りありがとうございます。
納期とは言っても知人に頼まれたことなので万が一でも大丈夫です(笑)
期限という書き方の方が良かったかな?
やる気がでてきました。
がんばります!
キーの同時押しの判定って無いの? KEY_SOFT1とKEY_SOFT2を同時押しした時に隠し要素が出るとかやりたいんだけど。 1が0x15で2が0x16だからって0x2bにしても意味が無かった。 スーファミとかプレステとかだったらこういう考え方だったんだけどな。
>>60 getKeypadState()使えばできるはず。
ただし端末によってはボタンの同時押しを認識できなかったりする場合がある。
すみません質問があります。 BGMとして流しているiメロディの音量を調整したいのですがどうしたらよいでしょうか? AudioPresenterクラスのSET_VOLUMEを使おうとしてるのですがどうも上手くいきません。 十字キーの上を押すと音量を上げて下で下げるようにしたいです。 AudioPresenter hoge; int volume; 中略 public void keyReleased(Panel panel, int key) { if((key==Display.KEY_UP) && (volume>=0 && volume<100)) { volume = volume*(int)1.25; hoge.setAttribute(AudioPresenter.SET_VOLUME, volume ); }}としてみましたが音量が変わりません。(KEY_DOWNも記述しています。) この時点で既にhoge.play();になっております。 試しにvolumeの条件を消してvolumeは実数でやってみましたがそれでもできませんでした。 どこがまずいかよくわからないのでよろしければ教えていただけると光栄でございます。
intにキャストしたら小数点以下が切り捨てられて >volume = volume*(int)1.25; volume = volume*1; になってるんでしょ。
>>57 >Panelでフォントの色が変えれるか
つ setForeground
65 :
デフォルトの名無しさん :2006/11/28(火) 07:07:30
>>63 その可能性も考えて
hoge.setAttribute(AudioPresenter.SET_VOLUME, 25);
ImageをMediaImageに変換するにはどうするんですか? というのはImage.createImageしたものを ImageStore.addEntryで端末に保存したいんですが。
連投になってしまいすみません。
>>63 その可能性も考えて
hoge.setAttribute(AudioPresenter.SET_VOLUME, 25);
と通常のint型の実数でも試してみましたが動作していないようでした。
hoge.setMediaListener(this);とも宣言してありますので全く理由がわからなくて。
hoge.start();もhoge.stop();もちゃんと動くので自分の使い方が間違っているのかと
思いこちらに書き込ませていただきました。
>>66 ImageEncoderを使うと良いよ。
オレは使ったことないけど、API見る限りはこれでいけるはず。
69 :
63 :2006/11/28(火) 08:25:50
>>67 PanelクラスのsetKeyListenerは使ってる?
>>69 レスありがとうございます。
オブジェクト指向が下手っぴなのでそのPanelのクラスには
TimerListener, SoftKeyListener, KeyListener, MediaListener
を実装してます。
KEY_SOFT1,2とKEY_0〜9,SELECT,IAPPキーの機能は問題なく動きますので
KEY_UP,DOWNが動作していないという事はなさそうに思えます。
hoge.setAttribute(AudioPresenter.SET_VOLUME, volume);
を使うタイミングとかにもよるんですかね?
71 :
63 :2006/11/28(火) 09:19:31
72 :
63 :2006/11/28(火) 09:23:23
>>53 そこで詰まっているならもう少し戻った方が良いかな。
直接テキストデータをってのは次のようにしてみて欲しかったんだ。
String moji = "この文字列を自在に描画してみよう。長い文の方が良い。";
上のように変数mojiに長文を定義して思うように
描画できるように工夫していけばいい。当然そのまま
g.drawString(moji,10,30);
ってやっちゃうと文字のサイズにもよるけど文字の後半部分が
画面外に行く事になる。うまくやるには工夫が必要。
やり方はプログラマ次第で変わってくるけど判りやすい?かな
と思うヒントをいくつか。
1:DoJa内のFontクラス。これは一行に何文字まで表示するかという基準がいるし
文字の描画などでもベースラインの位置をちゃんと扱う為に知っておいたほうがいい。
2:CLDC内のStringクラス。言わずがな文字列を扱うクラス。文字列から文字列の
取り出し方とか色々弄っていると良いかと。
とりあえずはこの2つをまずしっかり調べてみよう。
文字の描画には色々面倒が多いので場数踏んで行きませう。
理解が深まったらStringBufferクラスやらも弄ってみれば良いね。
結果は同じでもやり方は千差万別。
74 :
デフォルトの名無しさん :2006/11/28(火) 12:28:14
>>54 違う人だったようなので再回答。
int key;
while(true){
key = getKeypadState();
if((key&(1<<Display.KEY_SELECT)) != 0){
str += hoge;
g.drawString(str, 10, 30);
}
Thread.sleep(10);
}
ちなみにこれはスレッドは使わないよ。
Thread.sleepは携帯電話を寝かせる省エネモードにするだけ。
>>>ちなみにこれはスレッドは使わないよ。 >>>Thread.sleepは携帯電話を寝かせる省エネモードにするだけ。 クマー?
76 :
70 :2006/11/28(火) 13:55:43
>>63 レス遅くなりました。
DoJa-4.1ですね。
クリアキーの場合はグループ化が必要って教えてもらったけどこれは間違ってないのかな…。
あまり迷惑掛けるのもなんなので少し自分で調べてみてからまた来ますね!
今は20k近いゲームの中に組み込んだのでどこかにミスがあるかもしれないですし…。
77 :
デフォルトの名無しさん :2006/11/28(火) 14:59:01
>>75 だいたいそういう認識でよいと思うのだがな。
78 :
70 :2006/11/28(火) 15:33:45
新しくテストアプリを作ってみた結果無事に動作させる事ができました。
その時の動作確認はSOFT_KEYでやりました。
しかしながら何故かDisplay.KEY_UPとDOWNでは動作しませんでした。
変わりにASTERISKとPOUNDを使ったらすんなり行きました。
KEY_UPとKEY_DOWNはオプションなんですかね?
>>63 様には大変ご迷惑をおかけしました。
本当にありがとうございます。
関係ないけどDisplay.KEY_SOFT1とFrame.SOFT_KEY1の使い分けがいまいちで困ってました笑
急にscratchpad:///5だけ書き込めなくなるとか 意味の分からない症状が出てるんだがこれは一体?
またエスパーきぼんぬですか
81 :
79 :2006/11/28(火) 21:17:41
何度やっても///5だけ書き込めない。 1回目は書き込めるんだが、2回目からエラー吐き出す。 何が原因なのか全く検討つきません。 エスパーの方ご教授お願いします。
close()してないだけかと
D902iで右キーを押しっぱなしにすると、下キーもときおり反応すると言われたのですが、 Canvasを継承したクラスで、processEventからDisplay.KEY_PRESSED_EVENTをひろって処理してるので、リピートはないと思うのですが、なにか思い当たる点とかないでしょうか。
85 :
デフォルトの名無しさん :2006/11/29(水) 01:22:52
>>84 ファームのバグか、
マトリックスのダイオードケチってるとか
そんなもんじゃないの?
今さらだけど PanelでKEY_UPとKEY_DOWNは使えないと思うぉ。(要は方向キー) だってコンポーネントのフォーカスを操作するために 予約されてるのだから。( ^ω^)
?
上で紹介されているBouncy Castleを作ってiアプリのプログラムを 作成しているのですが、RSAでキーの生成の仕方がよくわかりません。 RSATest.javaをみてみると、キーは生成してないですよね? あと、暗号化のやり方もネットでいろいろ調べてみて Cipherクラスを使ってるサイトがいくつかあるんですが、 このクラスがなくて暗号化の仕方がわかりません。 どのようにしたらよいのでしょうか?
>>88 いや、作ってるよ。
このライブラリではCipherクラスは使ってない。
そもそもCipherクラスが無いような環境でも使えるようにしてあるわけだし、
だからこそこのライブラリを使おうって訳だ。
#ドキュメントの少なさには正直オレもウンザリしてる
ヒント:207行目〜
iモードJavaプログラミング FOMA対応版の話だけどHPに行ったらサンプルコードの 他にプログラム事例編の本書には載ってないソースもうpしてあるのな。 本書の解説だけでわからないところはどうしたら良いんだって思ってたけど助かった。 こいつは便利だからじっくり見て勉強しようっと。
どれのことを言っているのか分かりません
>>91 誰に言ってるのか分かりません
俺に言ってる?
本書には解説しか載っていない中の人の作ったアプリのソースがうpされてるってこと。
補足だけどそのソースがまず間違っていた事。
あと関係ないけど拡張APIも買ったんだけど殆どFOMA対応版に載ってる事だね。
拡張APIが3年の月日で標準APIになったんだな。
>>89 レスありがとうございます。
暗号化、複合化が一通りできました。
確認なんですが、RSATest.javaのeng.init();の引数しだいで
暗号・複合ができるってことでいいんですよね?
あとPublicKeyの表示は、
System.out.println("public: " + ((RSAKeyParameters)pair.getPublic()).getModulus());
でできるのですがPrivateKeyはどのように表示したらよいのでしょうか?
スクラッチパッドに保存したいのですが、PrivateKeyは文字列で確認はできないのでしょうか?
>>90 俺もたまたま前スレの
>>816 ,819,820のやり取りを見てて
何があるのかな?って覗きに行ったら偶然見つけたんだ。
これで本書の活用度がマジで3割増しになったと思った。
あのしょぼい解説だけでは無能な俺には設計がわからなかったので。
結局TransparentImageってどれで使えるの? API実装状況によるとSH系だけだけど、 902とか載ってないやつはどんな感じですか。 しかも5.0じゃ標準になるようですが。
P902isとp903iにiアプリ本体をSDカードへ移動って機能があるけど、 あれは暗号化してくれてるのかな? 難読化もタダじゃないんだが。。。
あたりまえでしょ
>>94 正直オレは暗号にはあまり詳しくないんで鍵の表示ってのがよくわからないんだが、
ソースを見た限りキーパラメータは全部BigIntegerのようだし
全部保存しとけば復元出来るかと。
あくまで暗号屋さんではなくプログラマとしての意見。
100 :
デフォルトの名無しさん :2006/11/29(水) 20:26:14
配列の要素のソートってどうやってる? J2SEなら使えるクラスがあるんだけど、iアプリではやはり手作り?
>>100 ほっかほっかの手作りです。(何年も前のだけどw)
>>101 サンクス。
やっぱりそうですか・・・。
男は黙ってバブルソート
>>103 要素数もたいしたことないし、自作アプリなんで速度も気にしないので、シンプルにそれでいこうと思います。
男は黙って・・・オモロカッタ
男なら速度とかチマチマ気にすんなって?
オス了解!!
女はどうしたらいいの?
愛嬌たっぷりマージソート
じゃ俺はゴールドソードで
ついでにオイラはマジニート
109 :
デフォルトの名無しさん :2006/11/30(木) 08:56:49
Display.setCurrent(canvas);
の前に
PhoneSystem.setAttribute(PhoneSystem.DEV_KEYPAD, Display.KEY_CLEAR
>>5 );
をしてもクリアキー動かないんだけど?
なんでですか?
それ以外のグループ1のボタン押してもkeypadに反応がありません。
if ((key & (1<<(Display.KEY_CLEAR-0x20))) != 0)
111 :
デフォルトの名無しさん :2006/11/30(木) 10:51:36
>>110 while(true){
key = getKeyPadState();
System.out.println("key: +key);
}
クリアキー連打
key:0
key:0
key:0
key:0
key:0
key:0
key:0
となるんです。反応ありません。どうしましょう?
>>109 ちゃんと取得できてるのか?
getKeypadState(1)の戻り値は0?
114 :
84 :2006/11/30(木) 11:04:28
115 :
デフォルトの名無しさん :2006/11/30(木) 12:34:31
116 :
110 :2006/11/30(木) 12:40:49
エスパーしてみたけど外れてた 間違えてたのはそっちだったのか
117 :
デフォルトの名無しさん :2006/11/30(木) 13:02:59
画像をサーバーに置いて1回目の起動時にその画像を取ってきてスクラッチパッドに読み込もうとしているのですが、 なぜか、エミュではうまくいくのに、実機で実行すると画像を取得できないみたいです。 URLの取得は、 IApplication.getCurrentApp().getSourceURL(); で取得してます。 実機でのデバッグ方法もよく分からない状態です。 アドバイス御願いします。
>>118 jamに
AppTrace = on
と書いて、通信処理付近にSystem.out.println()を挿し込むと
実機にアプリ実行情報ってのが記録されるから
どこで何のエラーが発生しているのかを、まず調べましょう。
120 :
118 :2006/11/30(木) 19:59:11
>>119 レスありがとうございます。
トレースで調べてみたところURLはあってました。
そして、ゲーム事態は進むのですが画像が出ない状態なのです。
スクラッチパッドを使わずにjarファイルに画像データを入れる方法もやってみましたが、
こちらもゲームは進むのに画像が表示されない状態です。
エミュでは、どちらも正常に動作します。
何故なのでしょうか?
プログラムにバグがあるから
122 :
デフォルトの名無しさん :2006/11/30(木) 20:18:24
画面にデバッグを表示するプログラムを作りましょう。 多分つうしんえらー じゃね? えらーめっせーじこおにさらしてみ
123 :
118 :2006/11/30(木) 20:47:32
すいません。Java始めたばかりでよく分からないのですが、 エラーというエラーは出てない(トレースを見る限り)のですが、 自分がデバッグ用に書いた画像が表示されない時のエラー文はでます。 もうちょっと勉強してきた方がいいみたいですね。 出直してきます。
画像の読み込みとか通信とかでエラーが投げられたらキャッチしてエラークラスからエラーをプリントさせなさい で、実機でトレース情報見てどんなエラーが出たのか確認
125 :
デフォルトの名無しさん :2006/11/30(木) 22:17:20
>>123 try{
〜〜〜
〜〜〜
}catch(Exception e){
g.setColor(WHITE);
g.fillRect(0,0,240,240);
g.setColor(BLACK);
g.drawString(""+e, 0, 0);
}
}
126 :
118 :2006/11/30(木) 22:25:02
>>124 ,125
助言ありがとうございます。
Exception eでエラー文をはき出せるんですか!?
そのような書き方をしてましたが、その中にエラーとだけ書いてました・・・
今から試してみます
SH902iでKEY_CLEARが上がってこない。・゚・(ノД`)・゚・。 DoJa-4.1のエミュでは動いてるのに。 public void processEvent(int type, int param) { if( ( getKeypadState(1) & ( 1 << ( Display.KEY_CLEAR - 0x20 ) ) ) > 0 ){ ....... なんか間違ってるのかな。
池沼クラスの質問態度だな。
129 :
デフォルトの名無しさん :2006/12/01(金) 12:35:01
>>128 ここに書いてあることを応用してやってみようと思ってやる。
それはほめられるべきことですよザーボンさん?
でも俺processEvent使ったことないからわかんない。
if( ( getKeypadState(1) & ( 1 << ( Display.KEY_CLEAR - 0x20 ) ) ) > 0 ){
はメインループの中で書いて使っていいんだよ。
>>127 あげ足取るようで悪いがprocessEventはキー関係のイベント以外でも
呼ばれるからその記述だとイベント発生するたびにキー処理はいるぞ。
多分、省略しているんだと思うんだけどさ・・・。
で、実機でトレースをつかってイベント発生時
getKeypadState(1)の戻り値を出力してみなよ。
値を出力するのはデバッグの基本中の基本だろうて・・・。
>>127 一応ついでにいえば、getKeypadState(1)はオプションAPIだが
SH902iは対応している。他機種では対応してない機種も多い。半々くらいかな。
SH902iはDisplay.KEY_CLEAR ダメみたいです。 メールボタンのビットは無事に上がってくるけど、クリアキーのビットだけ立ち上がらない。 SH902iあきらめました。
前スレから似たような質問が続いてるような。
>>132 Docomo使い続けてる人はクリアキー使う習慣が無いと思うのだけれど。
SH902を蹴るより、クリアキー使う仕様をどうにかした方がいいのでは?
135 :
デフォルトの名無しさん :2006/12/01(金) 21:36:57
iモードつながりづらくて今、インターネット喫茶の パソコンから書き込んでいるんだけど皆さんの携帯のつながり 具合はどうですか?ちなみに私2ヶ月前に生まれて初めて 携帯持った者です。
>私、2ヶ月前に生まれて、初めて携帯持った者です。 生後2ヶ月で携帯持ってるんですか。凄いですね。
>>134 >Docomo使い続けてる人はクリアキー使う習慣が無いと思うのだけれど。
これが良くわからん。
なんでドコモだとクリアキーを使う習慣が無いの?
メールで文字を削除する時はクリアキーだよね?
言ってる事が違うのか?
アプリでとかってことなのかな?
>139 >131
>139 Docomo「使い続けてる人」、つまり古くからのドコモユーザーを指してるんだろ。 503の時代から今までドコモ端末はクリアキーが標準装備とは決まっていない。 今でもクリアキーがない端末が結構あるなら、それを使う仕様は避けた方が無難。 >134はそういうことを言っているのかと。
アプリの開発始めた頃は決定ボタンがあるのに キャンセルボタンが無くて困った覚えがあるな。 結局ソフトキーに「戻る」を入れるわけだがw
143 :
139 :2006/12/02(土) 14:22:12
>>140 さんので
>>131 をみてアプリとしてだと思いました。
>>141 自分も503iから使ってるんですけどずっとクリアキーがあったので
クリアキーが無い端末があるとは知りませんでした。
N、P、D、SO、SAしか使ってないのでその他の端末でしょうね。
わざわざありがとうございました。
>>143 実機にクリアキーが存在しない、と勘違いしていまいか。
アプリでクリアキーを押した/離したという状態が拾えないということだよね?
PhoneSystem.setAttribute(PhoneSystem.DEV_KEYPAD, 1);
>>144 えっと
>>131 さんをを見たらアプリ上で拾えないと言う意味だと思ったのですが
>>141 さんの書き込みを見たら
>503の時代から今までドコモ端末はクリアキーが標準装備とは決まっていない。
今でもクリアキーがない端末が結構あるなら、それを使う仕様は避けた方が無難。
と書いてあったので実機で無い端末があるのかと思いました。
>>141 だが、勘違いされても当然の書き方だよな。訂正する。
標準装備とは、アプリの立場でのことを指してるつもり(
>>144 の指摘どおり)。
くどいけど補足すると、Display.KEY_CLEARはDoJa-3.0からオプションで定義された。
本体に実際にクリアキーがついてるかどうかということを指したつもりではなかった。
(手持ちのN505にもクリアキーついてるよ)
「標準装備」って言葉を使ったのが悪かった。スマン。
505以降になって、クリアキー標準装備だよ。
150 :
デフォルトの名無しさん :2006/12/02(土) 16:44:14
>>149 だからといって、動作しなかったり、変なリスナー番号になってたり、ボタンが変なところについていたり様々だから、
必須のキーに置くのは絶対だめだよ。
あくまでソフトキーに戻るを実装して、そのおまけ程度に・・・。
>>151 え、嘘だっけ?
505から標準APIになったし、クリアキーがついてない機種はなくなったと思ったんだけど
153 :
デフォルトの名無しさん :2006/12/02(土) 20:51:53
KEY_CLEAR public static final int KEY_CLEAR [iアプリオプションAPI] クリアキーを表します(=0x20)。 端末によってはキーがない場合もあります。 このキーにアプリケーションの動作上必須の機能を割り当てると、 キーを持たない端末で支障が出る場合がありますので注意してください。 導入されたバージョン: DoJa-3.0 (505iS) 関連項目: 定数フィールド値 DoJa5.0javadocより。
QVGA機種だと小さいサイズで表示されちゃうんだけど、QVGAに合わせて拡大表示するにはどうすればいいの?
>>154 拡大できたら比がおかしくなるんじゃない?
156 :
デフォルトの名無しさん :2006/12/03(日) 01:28:55
>>154 jam設定で余計な真似をしなければ240x240だと思われ。
とりあえず、通話キーと終話キーの間にキーは P505iにはねぇ P902iにはある ですよ。いや505は他のボタンに割り当てられてるかもですが(壊れてるので確かめられない)
158 :
デフォルトの名無しさん :2006/12/04(月) 13:49:55
カメラから取得した画像に閾値処理などを書ける場合は どうしたらいいのでしょう?
>>158 やったことないけどこんな感じ?
int[] pixels;
Camera camera = Camera.getCamera(id);
camera.takePicture();
MediaImage mi = camera.getImage(index);
mi.use();
Image img = mi.getImage();
Graphics g = img.getGraphics();
g.getPixels(x, y, width, height, pixels, off);
//pixelsで閾値処理
>>153 他クリアキー関連
実機に搭載されているクリアキーの押し下げを判定できるキー定数って
Display.KEY_IAPP だよね
>>145 のように書いて
Display.KEY_CLEAR に反応するのってエミュレータだけじゃね?
keyState0=getKeypadState(0);
keyState1=getKeypadState(1);
のどちらかでもクリアキーを押して
ゼロ以外が返ってくるのってエミュレータだけだったし
実機ではクリアキーを押すと
keyState=getKeypadState();
で 0x1000000 が返ってきたよ
エミュではDisplay.KEY_IAPPの「待受」に相当するキーが
っていうかDisplay.KEY_IAPPって待受のような用途に
使われていないんじゃない?
「マルチ」とかのボタンがある機種もあるけど
Display.KEY_IAPP なんてこないし
161 :
デフォルトの名無しさん :2006/12/04(月) 19:17:01
900以降で実機のクリアキーは Display.KEY_CLEARと何の関係も無いということでOK? 900、901とも全部×がついてるし 以降は実装状況のpdfがないからわからんけど よく見ればKEY_IAPPはKEY_CLEARと違いオプションじゃないしな これを使えということか
過去ログやこのスレをちゃんと読めば解決する問題だろ。 いつまでやってんだ。
読んでも分かりません(><)
リファレンス見た。 Display.KEY_CLEARってどこも実装してない・・・・・・ エミュだけに○付いてた。
>>158 おれもやってみたけど159のやり方で
動かなかったね
Display.KEY_CLEARは標準化に失敗したみたいね。忘れた方がいいかも。 そろそろMIDPとのソース兼用も考えなきゃならんし忙しい
172 :
171 :2006/12/05(火) 01:07:58
>>168 あきらめるな。ADFにKEY_CLEARが●になっている機種以外はKEY_IAPPに「クリア」が割り当てられているかんじだ
詳しくは上のページ見ろ。これはおれも悩んだから、よくわかる。がんばれ
KEY_IAPPは待ち受けの活性化キーでしょ? それがたまたまクリアキーに割当てられている機種があるだけの話で。
>>173 かなり高確率で割り当てられてるっぽいよ
たぶんこれを割り当てたからクリアキーを割り当てれなかったんじゃないかな?
175 :
171 :2006/12/05(火) 02:16:24
事実上ほとんどの機種が、待ちうけ活性化のキーとクリアキーを同じキーに当てていて、そのキーを押すとKEY_IAPPを返す。
>>173 建前いいんだよ建前は。
クリアキーをつかわねーのが正解
他のアプリでもクリアキー使っているのに なんで使えないんだ と言われるのが現場 もちろんそれがKEY_IAPPかKEY_CLEARかは プログラマの問題であって現場の認識の外
クリアキーかどうかじゃなくて、クリアキー以外のキーじゃないかどうか比較すればいんじゃね?
>>171 F900だったと思うが面白い位置にアプリキーあるよ。
>>177 ウチじゃクリアキー使わせないけどね。
対応端末減らすかクリアキー使わないか
料金倍にするかの3択を客に突き付ける。
>>178 他にもオプションが多数あるので不可
すまん。以前ここで、クリアキーは505以降実装といったけど KEY_IAPPとの勘違いだった。
181 :
171 :2006/12/05(火) 13:23:30
>>179 F900iの下キーだね。使いにくそう・・・。
>>181 あー、ごめん、F900iじゃないや。
どの機種かちとあやふやなんだが、
背面のサブディスプレイの下のボタンが割り当てられてる機種があるよ。
以前待受アプリ作って「なんじゃこりゃー」ってなったんでそれだけは覚えてる。
183 :
デフォルトの名無しさん :2006/12/05(火) 16:18:29
流れ切ってすみません
>>159 今頃だけど、getGraphics()はcreateImage()で作った物にしか
適用出来ないんじゃなかったか?
createImageしたものに一旦drawImageすればいいんでね
iモードからOpenGLは呼べるのでしょうか?
iモード?スレ違いな気がするが、無理
188 :
デフォルトの名無しさん :2006/12/05(火) 21:50:30
>>185 iアプリの間違いか?
DoJa5+トラステッドで使える。まあ機種限定になるが
で、5.0のエミュの完成はいつですか?
動くものは完成してるでしょ? 一般に配布されてないだけで。
携帯から、MySQLの読み出しってやった人いる?
>>192 携帯アプリから直接MySQLDBサーバーへアクセスということか?
セキュリティー的な事もあるだろうし、処理的にありえないだろう。。。
APPサーバー経由が普通じゃねえの
5.0いつ配布なんだろう…
>>193 さんくす、やはり無理なんですね。(´・ω・`) ショボーン
>>192 そもそも生のソケット通信ってできないんじゃ。
生はだめだって言ったのに・・・
個人で作ったiアプリの課金代行をやってるとこって無いのかな?
ありますん
どこがおすすめ? そこで何か売ったことがあれば感想ききたい。
リアップしかシラネ
育毛剤?オススメがあったら教えてくれ
石けんで洗う
5.0来たよ
DoJa5.0インストールした^^
206 :
デフォルトの名無しさん :2006/12/09(土) 00:53:07
5.0出たの? 落としに行こうかな^^ でも趣味で作ってるだけで自分の端末が4.1LEだし関係ないや^^ んで質問なんだけどiチャネルのキーって使えたっけ? 拡張APIにはいってる?
207 :
デフォルトの名無しさん :2006/12/09(土) 05:59:21
>>207 3.0がわからないけど俺はあってると思うんだけどな。
もっと詳しい人が来るのを待ってくれ。
ただ「import java.util.Vector;」←がセミコロンじゃなくてコンマなのが気になるけど。
話は違うけどそこのページ読んだら参考になったからありがとう^^
>>207 と思ったらよくみたらセミコロンだったな。
すまん。
これじゃ俺にはわからないから先人の到着を待ってくれ。
連投ウザイけどごめん。
>>207 3.0の仕様書見たらこう書いてあった。
Collectionクラス
CLDCではjava.utilパッケージの次のCollectionクラスがサポートされています。
java uti.Vector..(ry
なので間違いなくサポートはしているはず。
何か使い方が悪いとかは?
211 :
デフォルトの名無しさん :2006/12/09(土) 07:20:48
>>210 いろいろありがとうございます。
sampleっていう名前のプロジェクトなんですが、
そのsample.javaではVectorは使っていません。
使っているのは30個くらいの自作クラスです。
つまりsampleフォルダの中には
sample.java + 30個くらいの自作クラス.java
って感じです。
もしかしてこの構造が悪いのでしょうか?
どうもiアプリで複数のクラスを扱うときの処理が分からなくて
困ってます。
>>207 DoJa 4.1使ってる者だけど、Ver4.1でもVectorやMath(一部拡張APIに実装されてるけど)は
使えないよ(実装されてない)。。。Ver3.0のAPIリファレンスにもVectorは載ってない。
>>210 さんの見た仕様ってどこの?
213 :
212 :2006/12/09(土) 10:43:02
うはw間違えた。 Vectorは使える。ArrayListと勘違いしたorz
自分で、実装
BREW移植の時に面倒だから仕事の時は浮動小数点はほとんど 使ったことないな。 趣味は糞端末は全部非対応でいいから別w
218 :
デフォルトの名無しさん :2006/12/09(土) 12:48:33
いま5.0使う意味は無いだろ。 常識的に考えて。
お前の常識≠他人の常識
220 :
210 :2006/12/09(土) 14:18:26
Javaってテンプレート機能ないから、リストの自作できないよね・・・ 配列で我慢かな
ん、どういう意味だ
>>222 糞ソースでごめんね・・・
fooList<ufo> mlist;
ufo.add( new ufo("adam,gif") );
ufo.add( new ufo("hamaki,gif") );
ufo.add( new ufo("ten,gif") );
for( mlist.TopObj() ; mlist.OkObj() ; mlist.NextObj() )
{
ufo.draw(g);
}
みたいな海苔の自作リスト
>>223 それくらいならVectorでいいんじゃね?
iアプリのtrustedってどういう仕組みなんでしょうか? MIDPのものと仕組みは同様でしょうか? それとも非公開APIを使用してやっているだけなのでしょうか
5.0になってエミュレータが異常に軽くなった気がするのは俺だけ?
やけにエミュが高機能化していてワロスw Java5に対応していないのが玉にキズ
>>224 ありがとうございます。 VectorとArrayListがあるみたいですね。
サンプルに見かけないのでimodeで禁じ手なのかと思ってました。ちょっと研究してみます。
_| ̄|○
>>223 のソースバグだらけだし・・・
230 :
デフォルトの名無しさん :2006/12/10(日) 05:58:10
1つのフレームの中に CanvasとTextBoxを同時に表示することって不可能なんでしょうか?
imeOn
>>228 禁じ手と言うか容量が大きくなるから推奨はしないらしい。
携帯みたいに容量限られてるとね…って話でしょ?
>>232 imeOnて日本語入力できるようにするだけだと思ってた。
textBoxに準ずるものなのか。
234 :
デフォルトの名無しさん :2006/12/10(日) 16:00:23
>>233 容量限られているからこそ、
十分大きな配列ではなく
ベクター使うんじゃないのか?
俺は十分大きな配列使うけど。
In your heart.
237 :
225 :2006/12/10(日) 21:06:40
241 :
デフォルトの名無しさん :2006/12/11(月) 19:36:41
>>239 さすがに時代が違うって。
メソッド使うなとか意味わからん。
ビット演算とかはやった事が無い、かつC++、JAVAしかやった事が無い自分が 今、はまりまくって困ってます。お願いします。 すっごい馬鹿な質問な気がするんですが、なにせどこを調べてものっていない・・・ と、長々書く前に本題を書きます。 CRCを算出する関数があります。 calCRC(unsigned short msgLen, unsigned char* msg) この関数によくあるシリアル通信用の信号を渡したいのですが、 それが1F080001234とかであったとします。 この値は実際には1F 08 00 00 12 34 と分かれています。 これは、いったいどうやったら上記で定義されている関数に 渡せるのかがわかりません・・・ 何を勉強しろでも良いのでお願いします・・・
>>242 どう見てもC/C++の関数じゃん。
それをそのままJavaで使おうったってトンチンカンな話だぜ。
calCRC(int msgLen, byte[] msg)
とかいうメソッドがあるならbyte配列のデータ本体と、そのうちの使う長さを渡せばいい。
244 :
243 :2006/12/11(月) 22:41:14
あと蛇足ながら付け加えておくと、iアプリとは関係ない話だな。 Java初心者スレ、C初心者スレのふたまたでドゾー
>>242 msg[] に 0x1F, 0x08 0x00 0x00 0x12 0x34 を入れればいいんじゃよ
>>245 ちゃんと調べて回答してる?
別件だが赤外線リモコンの場合1バイト単位で
ビット列を逆転しないといけなかったりするぞ。
248 :
デフォルトの名無しさん :2006/12/12(火) 14:30:46
俺も海外育ちだからウエスティンで洗練された思考の持ち主だけど、 携帯の何処が言い訳?音は悪い、繋がりにくい、通話中にすぐ切れるわ 機種なんてユーザー側の使い勝手など無視され、メーカーや携帯会社が いかに儲かるかが 見え見えの機種ばかりで、本当に携帯ユーザーを馬鹿にし、 良いカモにして ボッタクっている。 最悪に馬鹿なのは、070で始まるナンバーが貧乏臭くてかっこ悪いとか言う 思考事態が自分に自信がなく、ブランドに頼るダサい椰子や ドコモなどしか電波の入らない地域に住む田舎者 なのに、ドコモユーザーを自慢する超アホ。 ドコモの何処が言い訳? 都内ならPHSで充分。料金は安いし、通信速度は携帯に比べはるかに速いは 音も良いし、体に与える害も携帯より少ない。 自分は今、携帯とPHSと2つ持ってるけど、携帯はすぐにでも解約しに 行こうと思う、本当に日本の携帯は酷いし持つだけ無駄。 賢い俺様は無駄金は使わない。 まあ、PHSの電波が入らない田舎者達は逆に可哀相ではあるが。
誰に対して怒ってるのかよーわからんな。
自分のバカさ加減についてじゃね。 「携帯2台」と「PHS2台」分の基本料金払ってる訳だし。
スマン。 携帯1台とPHS1台だね。
解約する予定なんだからいいんじゃない?
要約すれば、 PHSと携帯の長所・短所を調べもせずに両方契約しちゃったバカ ってこと?
いや、洗練された思考の持ち主がこんなこと書くとも思えないから ただの釣りだろう(´・(ェ)・`)
釣りは百も承知で、 ウエスティンで洗練されたバカを話の肴にしている訳だよ。 マジレス、スマソ
他に話題がないしなw D800iDSに対応したオプションAPIってでるのかが楽しみではある。 自在に両画面とも操作できるなら購入してみようかと考えたりも・・・。 消費電力凄そうだけどw
>>257 com.nttdocomo.opt.ui
クラス SubDisplay
>>258 サブディスプレイ扱いなのか・・・。
NDSの例からしてタッチパネルの反応って1箇所のみだろうし
通常のゲームアプリはタイプしないメーカー多そうだな。
横押しながら決定とか出来ないわけだし。
260 :
258 :2006/12/12(火) 18:35:06
>>259 思いっきりタイプミス・・・。
×通常のゲームアプリはタイプしないメーカー多そうだな。
○通常のiアプリサイトは対応しない所多そうだな。
すまん・・・260の名前すら間違ってる・・・。 意味ないレス連発ですまん・・・消える〜
藻前ら、DoJa5は遊び倒したのか(´・ω・`)
サンプルゲームで遊び倒しております
メガアプリとかなんとか言われても 個人でそんな大容量のアプリなんか作れねーよってんだ 会社じゃ言われたもん作るしかねーし・・・
俺、今の仕事が終わったら903用のゲームを作るんだ
903の死亡フラグが><
自分が金を出して買った携帯の使い方を制限されてるのってやだなぁ。 iアプリって制限多すぎ。
>>267 他キャリアに比べたらかなり制限少ないと思うんだが・・・
270 :
267 :2006/12/12(火) 22:30:50
>>267 たしかに。
ついPC、PDA、W-Zero3などと比べてしまった。
>>267 それでもi-modeが一番制約少ないと思う。 来年から全キャリアでオープンなJavaが走るようになるらしい。 そしたら横並びになるね
横並びか?
273 :
デフォルトの名無しさん :2006/12/13(水) 10:14:13
ちょっとスレ違いかもしれませんが、質問です。 iアプリでhttp通信をしてバイナリデータを受信するとします。 その場合サーバサイドでPHPを使用してバイナリデータを送信する為には どのような風に記述すればよいのでしょうか? よろしくお願いします。
fpassthru() file_get_contents()
276 :
273 :2006/12/13(水) 21:06:31
>>274 おぉ!知りたかったのは、まさにこれです。
>>275 PHPにこのような関数があること自体知りませんでした。
お二方とも、ありがとうございました。
1行で書けるね <?php echo file_get_contents('hoge.bin'); ?>
逆にバイナリデータをアップロードするには?
もう少し質問のしかたってモンがあるだろう。
iアプリ側はこうですか?アップロードされたものをファイルに保存するようなphpはどう書けばいいのでしょうか?(ファイル名は$filename=time().'.3gp'; あたりで) HttpConnection c; InputStream is, in; OutputStream out; byte[] data; int length; in=camera.getInputStream(0); String url=new String( IApplication.getCurrentApp().getSourceURL()+"save.php" ); try{ c=(HttpConnection)Connector.open( url, Connector.READ_WRITE, true ); c.setRequestMethod(HttpConnection.POST); c.setRequestProperty("Content-type", "applicaton/octet-stream"); out=c.openOutputStream(); data=new byte[1024]; length=in.read(data); while( length != -1 ){ out.write(data, 0, length); length=in.read(data); } in.close(); out.close(); c.connect(); data=new byte[1024*150]; is=c.openInputStream(); length=is.read(data); byte[] work=new byte[length]; System.arraycopy(data,0,work,0,length); is.close(); c.close(); }catch(Exception e){//略 }
>>280 バイナリの受け取りはこんな感じにしてる。
ファイルの保存は分るよね?
function &getPostBuf() {
$stdin = fopen( "php://input", "r" );
if( !$stdin ){
return null;
}
$buf = "";
while( !feof( $stdin ) ){
$buf .= fgets( $stdin, 1024 );
}
fclose( $stdin );
return $buf;
}
変数名は最初の頃"php://stdin"にしてた頃の名残なのでヌルーよろしく。 下記でも動くかもしれないけど試してない。 file("php://input");
283 :
280 :2006/12/14(木) 11:38:03
284 :
280 :2006/12/14(木) 11:41:32
リロード忘れ。。
>>282 ではサイズゼロのファイルが作成されましたのでNGでした
285 :
280 :2006/12/14(木) 13:33:50
DoJa 5.0のiアプリコンテンツ開発ガイド for DoJa-5.x 詳細編 p.115に HTTP(S)通信で送信可能なリクエストボディのサイズ、および受信可能な レスポンスボディのサイズには、プロファイルの世代により以下の制限があります。 とあってDoJaの各バージョンについて FOMA携帯電話ではリクエスト80Kバイト、レスポンス150Kバイト などと書いてあるけど DoJa5.0の欄が無いのはミスだから? 本当はいくらまでだっけ?
>>285 DoJa5.0でも上80K下150Kだったはず。
アプリDLんとき1M落とすときのrange指定は
アプリ内からは使えないよ確か。
288 :
デフォルトの名無しさん :2006/12/15(金) 08:45:10
エミュレータで以下のメッセージが出て実行できず困っています。 ALERT: Maximum byte code length (32kB) exceeded メソッドが大きすぎるのが問題だと思うのですが、問題を起こしているメッソッドを調べる方法はないでしょうか?
これはメソッドじゃなくてクラスの合計容量じゃなかったっけか。 詳しい人頼む
ぐぐってみたけど、メソッドがでかすぎると出るエラーでOKみたい
>>288 でかい配列を作ってるメソッドとかないかい?
291 :
288 :2006/12/15(金) 09:55:15
基本的に配列はメッソドの外で宣言するようにしています。 調べるツールとかあれば便利なのですが・・・・。
>>291 おれはものすごいでかい配列をメソッドの外に置いたら
このエラー出たことあるよ。
で、結局配列を2つに分けて別々のクラスに置いたら通った
>>288 1つのメソッドが大きいのが問題だから、コード量の多いメソッドを
適当にコメントアウトしていくしか見つける方法ない気がする。
294 :
288 :2006/12/15(金) 11:23:41
バイトコードに変換して、 .method .end method 間の行数を数えるツールを作ったら分かりました。 static final int aa[] = {1,2,3}; static final int bb[] = {10,2,3}; としてた場合 staticメソッドが自動で作られて その中でaa、bbの初期化してた。 このstaticメソッドが大きいのが原因でした。
Eclipse ver,3.20 Duja ver,5.0 JDK ver,1.5.0_09 以上の環境なんですが、HelloWorldでも表示しようと エクリプスからエミュレーターを実行すると 一瞬エミュレーターが表示されるだけで勝手に終了してしまいます。 デバッグモードで起動すると 「Connecting to 127.0.0.1 on port 2800 Waiting for debugger on port 8000」 と表示され、リモートJAVAアプリケーションを接続すると、 「Connection received.」 と表示されエミュレーターが終了してしまいます。 このような現象は何が原因と考えられるでしょうか?お力をお貸しください。
とりあえず公式行って対応してるEclipseのバージョンと JDKのバージョン調べてみたら?
軟弱者でスマソ Panelでコンポーネントを追加させた後、削除する方法は mypanel panel_a = new mypanel(); Display.setCurrent(panel_a); などとして画面を切り替える方法しか無いですかね?
>>295 Eclipseで
Project->Properties->Java Compiler
->Enable project specific settings
->Compiler compliance level
が5.0になってる?
なってたら1.4にしてみて
299 :
デフォルトの名無しさん :2006/12/15(金) 12:36:01
すみませんどなたか教えてください。 iアプリの開発を始めようとしてテスト用に簡単なimage表示アプリを作成したのですが、 携帯でDLしようとすると「ソフトに誤りがあります」と表示されてDLできませんでした。 ビルドはDoJa4.1と3.0で試しましたがどっちもだめでした。 サーバは自宅のWindowsサーバを利用しています。 実機はN900iとP700iで確認しました。 jamファイルの中身はこんな感じです。 ---------------------------------- LastModified = Fri, 15 Dec 2006 11:39:44 AppClass = test AppName = test PackageURL = test.jar AppSize = 936 ---------------------------------- サイズ、日付ともに確認しましたが問題ありませんでした。 他にどんな理由が考えられますか? 冬休みを使ってアプリ開発をしようとワクワクしていたのにいきなり躓いてしまいました(汗
jamで最後の行は改行してる?
>>299 imageとは違いますが
俺は某ムービーエンコーダーがつくるMLDだけを再生しようと
そのMLDをリソースに入れて鳴らそうとしたことがあります
すると「ソフトに誤りがあります」と言われてしまいました
しかし真っ当なMLDを入れると何も言われませんでした
例えばこういうこともあるので
まずは外せるものを全部外してみてはどうでしょうか
303 :
デフォルトの名無しさん :2006/12/15(金) 14:11:22
>>300 さん
はい、きちんと改行しています。
改行しないとエラーが起きる場合があるとどこかのHPでみたので
>>301 ためしにHello Worldを表示するだけのアプリを作ったんですがそれもダメでした...
>>302 その可能性はあるかもしれないですね。
HTMLはこんな感じです。
ちなみにjam、jar、htmlは全て同じフォルダに入ってます。
---------------------------------------
<HTML>
<HEAD>
<TITLE>test</TITLE>
</HEAD>
<BODY>
<OBJECT declare id="test"
data="test.jam"
type="application/x-jam">
</OBJECT>
<BR>
<A ijam="#test" href="error.html">DOWNLOAD</A>
</BODY>
</HTML>
---------------------------------------
304 :
299 :2006/12/15(金) 14:13:08
↑すみません名前欄抜けてました(汗
>>299 難読化とかはしてない?
以前難読化ツールの使い方よくわからずに試行錯誤してたときに
そのエラーを見た事がある。
PCのエミュレータ上では動くのよね?
キャッチしてない例外が発生してる可能性は?
306 :
295 :2006/12/15(金) 15:12:22
>>296 ,298
2人の複合パワーで動いた!マジサンクス!!
(JDK1.42にして、コンパイラー準拠レベルを1.4にしました)
HelloWorld自体はたいしたこと無いけど、すげえ前進した気分www
307 :
デフォルトの名無しさん :2006/12/15(金) 16:33:18
>>305 エミュレーターでは動きました。
ソースはこれだけなので例外処理はいれてません。
--------------------------------------------
import com.nttdocomo.ui.*;
import java.util.*;
public class test extends IApplication{
public void start(){
Display.setCurrent(new Hello());
}
}
class Hello extends Canvas{
public void paint(Graphics g){
g.drawString("Hello World",20,20);
}
}
--------------------------------------------
エミュは JDK5.0 使うなってぐらい、1.4.2 にするとうまくいくことが多いな。
309 :
299 :2006/12/15(金) 16:40:02
また名前欄入れ忘れてました(汗 もしかしたらサーバの問題なんですかね? 自宅サーバにはAN HTTPDを使ってて、 サーバの知識があまりないのであれなんですけど、たとえば文字コードの問題とか。 それとWebからファイルをダウンロードする時ってFTPは使ってないんですよね? (FTPのポート空けても閉じてもダメでしたけど・・)
310 :
デフォルトの名無しさん :2006/12/15(金) 17:08:57
ゲームループはどうやってまわしてます? サンプルだと↓のようなものが多いのですが これっていい加減すぎません? public void run(){ do{ //タイマー待ち(50ms) try{ Thread.sleep(50); }catch(InterruptedException ie){} //再描画 repaint(); }while((keypadState & 1 << Display.KEY_SOFT2)==0); }
Docomoは割と適当に書いても動くから お好きなアルゴリズムでどうぞw 禿のは描画位置とか気をつけなきゃなんなかった気がした。
312 :
デフォルトの名無しさん :2006/12/15(金) 18:15:55
~Graphic() { DestroyImage(); } こんな感じでデストラクタを記述したら Eclipse上ではエラー ~ トークンを削除してくださいって出るんですけど 書き方間違ってます?
>>312 JAVAで書きたいの?
C++みたいに書いてるからでは?
314 :
デフォルトの名無しさん :2006/12/15(金) 18:21:19
>>313 C++とJavaってデストラクタの書き方違うんですか?
調べてきました どうやらJavaではデストラクタ使う必要少ないみたいですね すいませんでした
Javaにデストラクタはありません。 デストラクタとは違うけど、 何か書きたければfinalize()をオーバーライドしましょう。
何?Java言語講座?w
あぁ、finalize()はiアプリでは使えないんだった。(よね?)
>>318 おお、それはじめて知った。
iアプリでは finalize 書いたことないな。
Imageオブジェクトの一部を切り出すことは出来ますか?
コメントを少なくするとファイル容量は減りますか? それともコンパイルする時除外されるから関係ないんですか?
>それともコンパイルする時除外されるから関係ないんですか? そう。.javaは減るけど.jarは変わらん。 まぁ、.jarを減らす方法もあるけど。
すぐ調べられることをなぜ聞く?
ここで質問すること=すぐ調べること なんだよ、きっと
327 :
デフォルトの名無しさん :2006/12/16(土) 11:21:31
その方法でループ回して今FPS計ったら、16しかでないんだけど 俺の環境だけ?
そうだよ
331 :
デフォルトの名無しさん :2006/12/16(土) 13:39:28
>>331 16しか出ないの俺の環境だけらしいからいいんじゃない
自分で書き直したら今度は32も出た
なかなか上手くいかない
ぴったり出るようになった 16しか出ないのはSleepの精度の問題みたいだった
>>327 コメント書く奴いない全員スルー状態カワイソス(´・ω・)
>>310 つーか、俺のソースじゃrepaint()なんて呼んでないなw
携帯向けのちっちゃいゲーム素材おいてるところないかな?
最後の行でclass又はinterfaceがありません っとでるんですけど どういうことでしょうか?
338 :
デフォルトの名無しさん :2006/12/16(土) 19:55:56
>>334 vodaならrepaint()は必須なはずだからお前が悪い。
339 :
デフォルトの名無しさん :2006/12/16(土) 19:58:11
ようやくOpenGLESが使えるようになったと思ったら勝手アプリでは使えないなんて・・・ OpenGLESってセキュリティ上のリスクあるの?
超遅レス
>>303 いま気づいたのだが
ADFの設定でterminalid, useridを
GetUtnじゃなくて適当にGetSysInfoに書いたら
「ソフトに誤りがあります」って言われたお
もはやレスじゃなくてチラ裏っぽ
repaint()しなくても明示的に paint(getGraphics()); でもいけるよ だからといって、paint(Graphics g)を空にするのは 問題あり 画面を常に更新するようなプログラムなら問題なし
みんな、Canvas クラスに実装するメソッドっていくつぐらい?
>>345 の paint() の話もそうだけど、描画を複数メソッドに分けて、
場合によって再描画する部分を分けてるんだけどこういうのってよくある方法なんだろうか。
347 :
デフォルトの名無しさん :2006/12/19(火) 21:22:18
348 :
デフォルトの名無しさん :2006/12/19(火) 22:01:40
>>346 全部ペイントの関数の中に入れたらいいじゃん。
iアプリが使える携帯を初めて持つんだけど、 サブ液晶に表示する内容は、メイン液晶にも表示されちゃうモンなの? サブ液晶のみに表示するプログラムを作っても、 DoJa5.0ツールだと、オープン状態だとメイン液晶のみ、 クローズ状態で初めてサブ液晶に表示。 実機(N903i)だと、オープン状態で両方に表示。 メイン液晶の表示を邪魔せず、サブ液晶だけで地味に動きたいよぅ。
>>350 携帯閉じて動かせばいいじゃない。いいじゃない。
M702先週出たけど・・・これの対応メンドクサイ・・・。 オプションだから仕方ないとは言え、com.nttdocomo.opt.ui.j3d使えないから 簡単とはいえ修正対応しないといけなくなった。30分で終わるけどさ・・・。 そしてなぜかバージョンアップしてもADFのAppVerの数値が更新されないから ユーザーに指示するのも大変になるかもしれなかったりする・・。 後者のは機種限定のバグとみなしていいのだろうか?
353 :
デフォルトの名無しさん :2006/12/20(水) 22:11:15
>>352 携帯閉じて非対応にすればいいじゃない。いいじゃない。
Math.Cos関数が利用できないんですが、何故?
cosだからじゃねーの? いや実はjava知らんけどさメソッドの頭って普通小文字なんじゃ?って思っただけ
>>355 eclipseでMath.って書いて入力補完させてるんですが関数がないんです
そもそもfloat使えないし。 自作汁
今調べてみたら、そのようですした 追跡ショットの計算をさせようと思ったのに
>今調べてみたら、そのようですした ○ 今調べてみたら、そのようでした
まぁfloatは使えないのだけれど、これどーぞ。 つ com.nttdocomo.opt.ui.j3d.Math
ついでに言えば、追跡ショットとか書いてあるからやりたい事は判るが リアルタイムで三角関数を使用するのはお勧めしない。 あらかじめ計算結果をテーブル化したものを使用するのがお勧め。 知ってたらすまね。
>>360 おおお
と思ったら今度はMath.absが使えなくなりました
シューティングゲームアルゴリズムマニアックス辺りを読んでそうなやかん。 仮に、floatが使えたとしても、 携帯電話で使われている遅いCPUじゃ、 手抜きでfloat演算したらフレーム数でないよ。
CLDC1.1の奴でもfloatは無理?
367 :
デフォルトの名無しさん :2006/12/23(土) 08:56:33
文句あんならFastMath使えカス
iアプリって同時にどれだけ画像表示できますかね? やっぱり多すぎると速度的にやばい?
やばい。 というか、自分で確認できるものはしような。
実機で動作させるのめんどくせ
なら、やめたほうがいいよ。 ある程度の数でデバッグしないといけないから。
ロード中っていうのを実装したいだけど 変数の設定状況とか画像をどのあたりで読み込んだかとかどうやって把握するの?
MediaImage MediaManager#getImage(String) MediaImage#use() Image MediaImage#getImage() が終了したら画像一枚読み終えたところ
初心者ってレベルじゃねーぞw
Mascot Capsule V4ってV3にあったコマンドリストはなくなったの?
iアプリでメールを送信するのはトラステッドだと思うけど そうでなくて、単純に携帯自身のメールアドレスを Stringで取得することはできますか?
378 :
376 :2006/12/25(月) 10:11:49
やっぱりそうですか。ありがとうございます
>>372 ローディング画面か・・・進行度合いを表示したいわけだろう?
とりあえず簡単な例を出すと、やりたい処理の数をあらかじめ
把握(画像展開何枚とか)。そしてその処理1つ分が済んだら
カウント1上げる。この二つの数値からローディングの
バーなり長さ計算して表示するわけ。ここまでは判るよな?
あとは表示タイミングだが
初歩的なのは1枚読む事にや数枚読む事にpaint呼び出す方法。
その他には、ショートタイマーを使い定期的にpaintを呼び出す方法。
これだとローディング中に他のアニメを表現するのも楽になる。
他にも方法は多々あれどこの二つが簡単だと思うよ。
現在Doja4.0、マスコットカプセルver.3を使用して3Dゲームを開発しています。 カメラの回転は m_TransX.setRotateX(m_nRotX);//X軸変換 m_TransY.setRotateY(m_nRotY);//Y軸変換 m_Trans.mul(m_TransX,m_TransY); m_G3.setViewTrans(m_Trans); 上記のようにできるのはわかったのですが、 モデルごとに回転というのはどうすればいいのでしょうか? またモデルごとの別々の平行移動もできますでしょうか?
>>380 >モデルごとに回転というのはどうすればいいのでしょうか?
モデルのベクトルに対して回転ベクトルを掛ける。
>またモデルごとの別々の平行移動もできますでしょうか?
出来なきゃ3Dでソフト作れないじゃん・・・
マスコットカプセル使う以前の問題のような希ガス
>>380 複数を自由に移動させたいなら、
管理機構を自前で用意しないと多分ダメです。
iアプリの本やサイトに執着せず、
3Dプログラミング全般で情報収集することをお奨めします。
∵行列を直接いじれば何でもできます
iアプリってhttp通信しかできないって聞いたんですが それをトンネリングというかソケット通信と同じように 文字列を送受信するためのライブラリとかないでしょうか
無
385 :
376 :2006/12/26(火) 15:35:15
関係者乙
>381 >382 Group、Transformを使い回転、移動できました。 これらのAPIはマスコットカプセルver.3では使用できないと 思っていましたが大丈夫なようですね。 ありがとうございました。 もう一つ質問なのですが、 Trans.translate(1, 1, 1); で平行移動させた場合画面上でかなり移動してしまうのですが、 もっと細かく移動させる方法はないでしょうか?
視点が遠けりゃ移動分も少なくみえるが
389 :
デフォルトの名無しさん :2006/12/27(水) 09:33:56
>>387 お前、その質問は、かなり、勉強不足過ぎて、失礼
ドラクエUなんかの効果音はPCMですかね? MIDIからMLDに変換しただけだと、機種ごとに音色が違いすぎて 無理っぽいんですが。
>>391 ドラクエはしらんが
MLD系はこだわるなら機種ごとに用意して使う。
MIDIだと機種ごとに音が違うし全種類の実機が必要 WAVだと音の最後に雑音が入る(wav2mldでは) 個人クリエイターには敷居が高い…
エミュレータと、俺の持っている実機(505i)と、嫁の持っている実機(900i)で、InputStream#availableの値が違う。 詳しく言うと、俺の持っている実機だけ実際のデータの1/10くらいの値になる。 なぜだ。
>>393 wav2mld使ってるけど雑音入んないなあ
それはうちでは引き取れません
N903iって、VGAでアプリを組むAPIは公開されてる?
398 :
393 :2006/12/28(木) 05:37:29
>>395 良ければ雑音の入らないサンプルをうpしてもらえませんか?
音質やビットレートを調整して試していますが、どうしても最後にバツッというノイズが入ってしまいます。しかも、全部の機種ではなく一部(元データによって機種は変わる)だけ。
>>397 VGAじゃないと使えないAPIって具体的に何(´д`)?
>>399 普通に作ると240x240がいっぱいいっぱいで、
ADFにそれ以上のサイズを入れると不正扱い。
VGAにモード切替するみたいな、何かVGA描画のとっかかりを知りたいな、と。
480x480って設定できないん?
DoJa5.0エミュと実機で、無理みたい。 まあ、既存のアプリの事を考えれば、縦横2倍描画が都合いいんだろうけど、 汎用性なくても自分用にVGAアプリを作りたいな、と。 サブ液晶みたいに、特別なImage転送先でもあるのか、 はたまたモード切替APIがあるのか。
うー、ボケだ。 今480x480のアプリを作ってみたら、 すんなりエミュでも実機でも動いたよ。 お騒がせしましたっ。
画像を分割する方法を教えていただきたい
叩き割る
>>404 質問の意図が不鮮明。
文字通り受け取るなら「画像編集ソフトで画像を加工しろ」で終了。
つ スター・プラチナ
皆さんDoJaのバージョン(?)は何を使ってますか? 3.5じゃ古いですかね?
エミュは5.0使ってるがプロファイルは3.5で作る事が多い
古い新しいの問題じゃなくてターゲットの機種が何かで決まるかと。505iならDoJa-3.0だし。 それぞれAPIがDoJaのどのバージョンから対応してるのか、リファレンス見て把握できるなら、 DoJa-5.0の開発環境を導入しておきながらDoJa-3.0の範囲で組む、というのもありだろうけど。 ちなみに自分はDoJa-3.0とDoJa-3.5の環境を入れてる。 30KB+200KBか、100KB+400KBか、の分け方。わりと大雑把。
ウチは基本的にDoja3.5入れて全部作ってたな。 Doja4.0は動かしてるとPCが重くなったから使うのやめた。 Doja5.0のエミュは今のトコちゃんと動いてるんで、5.0に以降するかも。 iアプリ開発中にWindowsXPが2回ほど青い画面になったが 何が原因かはわかってないしなw
>>412 WindowsMeで開発してた頃はよく青くなったもんだ。
うちは3.5も4も5も問題ないな。 毎回出たら速攻移行してる
ネットランキング作りたいんだけど詳しく解説してるところ無いかな? とりあえずCGIサーバーとPHPとテスト用のApacheは用意した 普通ランキングってSQL使うもんなのかな?
SQLを使うか使わないかは作り手の自由。簡単な個人アプリなら不要だし、使ってもいい。 PHPなどがまだ実用レベルでないなら、iアプリと同じJavaでやった方がいい気がするが。 簡単なものなら、鯖に情報を送って、ランキングに登録、順位を返す。これだけで出来上がり。
417 :
デフォルトの名無しさん :2006/12/31(日) 00:15:36
アプリをダウソするときにiモードパス入力するじゃん?あれってなんなの? 契約のときに決めたパスワードは通らないんだけど・・・
>>416 ありがとうございます
とりあえずテキストに順番に書き込んでという形でやってみます
むかついたからソケットライブラリ作る。 サーバサイドの下位レイヤセキュリティが無意味になるが知ったこっちゃ無い。
激しく期待
httpトンねリングの実装とJ2SEのSokect仕様把握から。 サーバーサイドはGCCで適当に書く。
30分弱で挫折。
適当に書くなんていっちゃ他けどサーバサイドプログラムのが セション管理とかよっぽど面倒くさそう・・・。 DojaのApi読んだけど通信毎にhttpコネクション張らなきゃ出来なさそうな・・・。 ダメダメな仕様になりそうだ。 httpトンネルの実装を見て勉強せなあかんな・・・。
相手先ホストの都合により送信できませんっていうのが送られてくることが 去年いくつかあって今日新年の挨拶送った相手にも送った瞬間そのメールがiモード センターから届いた・・・俺受信拒否されてるのか?
年末年始の通信規制
当然というか1セッションしか張れないのか?>HTTP そうならトンネリングプロトコルの実装相当難しいな・・・。
5.0のサンプルが勉強になる
もしかしてeclipseに二つ以上のDojaを共存させることって出来ない?
eclipseを2つ用意する
スレ違い
とても初歩的な質問いいでしょうか? 今からdojaを勉強するにはDoJa 5.0をダウンロードすればいいのでしょうか? 主にsh901iのアプリを作ろうと思ってるんですが。
>>432 jdk 1.4.2 と eclipse 3.2 と DoJa 5.0 SDK とAPIリファレンス。
とりあえずこれだけ揃えれば勉強はできると思われ。
俺は DoJa 5.0 使ったことないけど、
eclipse 上での設定で下位バージョンに切り替えられるんで、
とりあえず 5.0 をインスコして、
後から目的のバージョンにあわせた開発をすればいいんでね?
ああ先にレスついた orz
ありがとうございます。 とりあえずjdk 1.4.2 と DoJa 5.0 は落としました。 ちょっといろいろ試してみます。
iアプリで扱う画像に関して超基本的な質問です pngファイルを読み込んでMediaManagerのuse()で使おうとすると 「Unknown media image format」 と言われてしまいます。(エミュレータでも実機でも) もしかしてサポートされていないのでしょうか? だとするとiアプリで使えるのはbmp、gif、jpegだけ?
GIFとJPEG マニュアル読もうね
439 :
デフォルトの名無しさん :2007/01/07(日) 04:07:18
携帯電話で使用できる文字セットでJIS X 0201を包括している文字セットって 何がありますか?
dojaからrubyに通信したときrubyがうまくEOFを検知してくれないのはなぜ?
Rubyだから
ストリームが終わらない世おおおおおおおおおおおおおおおおおおおおおおおおお
Http通信についてですが、 サーバー側Httpレスポンスでkeep-alive指定しても、 DojaのApiだと通信毎にコネクションCloseしなきゃならないみたいなんですが。 これだとHttpリクエストを送信するごとに、 サーバーへTCPコネクションを作成する事になってしまいます。 keep-aliaveで通信できないんでしょうか。
panelでaddしたコンポーネントを削除する方法を教えていただけないでしょうか あるいは画面クリアとか
アク菌ウザス・・・
>>443 携帯Java側の制限で制御不可かと。
細かい所はサーバ側監視してないから判らないのだけど、
docomoは接続がやたらと早いので問題ないような。
>>444 panelごと作り直し
撮影画像と同時にコメントとか送る方法やっとわかった。 みんなありがトン
447 :
デフォルトの名無しさん :2007/01/11(木) 18:54:22
MeでDoJa-3.5を使ってるんですが、やたらフリーズします どうしたらいいですか?
>>447 OSを変える。
冗談でも冷たくしてるわけでもなく。
Meはいくない。
449 :
447 :2007/01/11(木) 19:19:23
98に変えればいいのかな?
>>449 Me使うくらいなら98SEのほうが良いけど手に入るのかね。
サポートも終わってるし2000なりXP使うなりしたほうが良いような。
2月まで待ってVista
Me動いてるようなPCにVista入らないだろ。
ヒント 新品
いまどき5万もあればまともなPC買えるしな。
456 :
デフォルトの名無しさん :2007/01/12(金) 22:07:06
5万もない
5万もないのか。 だったらバイトでもしろよ
ソース書いてビルドして実行しようとしたら java.lang.OutOfMemoryError: Main: Maximum byte code length (32kB) exceeded ってエラーが出て実効出来ない。 プログラムが長すぎるのか? 何か対処法無い?
でかい配列があるならbyteにして要素数を減らして小さくする
460 :
458 :2007/01/14(日) 08:51:47
>>459 配列なんか使ってないけど・・・
とりあえずなんか減らせばいいのかな。
長い文字列があるとか
>>458 ひとつのメソッド内にコード書きすぎでは?
463 :
デフォルトの名無しさん :2007/01/14(日) 11:35:08
バイトしたいんだけど、おれスゲエキモイからどこも不採用 足が悪いから肉体労働は無理だし事務系で探してるんだけど見つからない
465 :
デフォルトの名無しさん :2007/01/14(日) 14:51:53
プログラムの実行時間を計りたいです 普通にnanoTimeで測っても 他の環境に左右されてしまいます そのプロセスだけに使用した時間を計る方法を教えてくださいm(_ _)m
J2SE(PC向けのJava)だとMXBean経由で多分プロセスCPU時間を 取得できたような気がするが、携帯向けJavaではサポートされない。 チューニングしたいのなら、プロファイラを利用した方が良いと思う。
素直にcurrentTimeMillis()じゃだめなの?
>>462 なんか6000行近いのが一個あってそこが原因でエラー吐いてるみたいだ。
そこ削ったら実行でけた。
ありがとう!
6000行のメソッドって・・ めちゃめちゃ設計がへたくそだな
スクラッチパッドの利用方法がイマイチわかりません データ入力出力は出来るんですが 辞書ツールのように最初からスクラッチパッドにデータを入力しておく、という風な使い方はどうすればいいんですか? 今のところでは、ソースコードに入力したいデータをセットして、プログラム上でデータセット しないとデータ入力したスクラッチパッドが使えません。 ソースコードとかではなくスクラッチパッドに最初からデータを入力しておく、という風に使うにはどうすればいいんでしょうか?
ソースコードとかではなくスクラッチパッドに最初からデータを入力しておく
一昔前のiアプリなら6000行メソッドなんて普通だろ?(´・ω・`)
一昔前のiアプリなら確実に容量オーバーだと思うが。
>>470 アプリダウンロードした場所にスクラッチ用データを置いておいて
初回起動時にアクセスしてそのままスクラッチに保存。
以後はネットにはアクセスせずスクラッチに保存したものを利用する。
ちょっと画像のこったゲームアプリなんかやればわかるけど初回にアクセスあるでしょ?あれだ。
>>472 行って言うあいまいな単位だと人の記述方法で変わるからなんとも。
だがよっぽど改行いれまくってる場合を除いて6000行は多すぎる。
スタック溢れちゃうよ
476 :
デフォルトの名無しさん :2007/01/16(火) 11:41:41
使用機種:P702i *Doja4.1使用 StorageDeviceを使用して、外部メモリ(SD)に格納した3gpファイルを再生させたいのですが、 //読み込むファイルを指定 File file = folder.getFile("file"); //読み込みモードで開く FileEntity fe = file.open(File.MODE_READ_ONLY); //InputStreamを取得 FileInputStream fis = fe.openDataInput(); どうもInputStream取得後、fisをどのように使ってファイルを再生すればいいのかわかりません。 VisualPresenterは使えるのでしょうか?どのように繋げればいいのかわかりません 教えていただけないでしょうか??
>>476 FileInputStreamってAPIに無いんじゃね?だから
InputStream in=fe.openInputStream()
じゃないの?
あとは
MediaImage m=MediaManager.getImage(in);
m.use();
VisualPresenter player=new VisualPresenter();
player.setImage(m);
add(player);
player.play();
じゃね?
と、テストもせずにカキコしてみる
>>474 俺は最初、
セリフを外部テキストで読み込むのが分からなくて
ゴリゴリ書いてた。
当然、同じエラー出してたよ・・・。
スクラッチパッドって、慣れれば案外使いやすい。
質問です。 偽装GIF(先頭にGIFヘッダをつけただけ)テキストビューアを作成中です。 以下のような処理にしているのですが、いかんせん読み込み速度が遅いのです。 有名どころのテキストビューアの数倍かかってます。 より速い処理がありましたらご教授お願いします。 String raw_text = ""; // 吸い出したテキスト try { ImageStore img_store; img_store = ImageStore.selectEntry(); // 画像選択 InputStream is = img_store.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); //1行ずつ読み込む String buf_line = br.readLine(); /* (中略)最初のGifヘッダを除く処理 */ //ファイルが終了するまで読み続ける StringBuffer sb = new StringBuffer(""); // 連結用バッファ while(buf_line != null){ sb.append(buf_line + "\n"); // 全部つなげる buf_line = br.readLine(); } raw_text = sb.toString(); } catch (Exception e) { }
1行ずつ読まずに一気に最後まで読む
482 :
470 :2007/01/19(金) 19:48:02
>>471 スクラッチパッドのデータの扱いについてですが・・・
つまりあらかじめ入力しておいたSPを
Jar,Jamらと一緒にアップロードしておけば起動したときに
そこからデータ読み込みが出来る、ということなんでしょうか?
>>481 改行処理も同時にやってくれるのでreadlineの方が速いと思ってました。
試してみます。
>>482 初期状態でスクラッチにデータを入れることはできないはずです。
事前に作っておいた辞書データを使いたいのなら
1.resフォルダにtxtとかで辞書を置いておきスクラッチと同じ方法で読む
2.ソースにまるまる書く
3.webに辞書置いといてDL
1が楽です。
3は辞書を頻繁にアップデートするときに便利です。
初心者なんですが、教えてください。 リストをスクロールや選択可能な形で表示したいんですが、 iアプリの全体像が掴めてないせいか、イマイチ出発点も 見えてきません。 ちょうどWIndowsのListViewの簡易版みたいな感じで いいんですが・・・何かヒントをいただけませんか?
公式エミュでselectEntry後にgetKeypadStateの数値がいかれるんだけど仕様なのかな
>>486 自前でキャンバスに描くしかないと思うよ
489 :
デフォルトの名無しさん :2007/01/20(土) 20:04:18
携帯で使える文字コードの一覧表ってないでしょうか? Shift_JIS EUC_JP JIS X 0208 が使えるか知りたいのですが。
SJISオンリー と公式資料に書いてあるわけだが
491 :
デフォルトの名無しさん :2007/01/20(土) 22:43:06
サーバーのjamファイルを読み込んで、 そこから最新のアプリバージョンを見るにはどうすればいいんでしょうか? 通信のやり方(サーバーのファイルをbyte[]で取得する)ならわかるんですが。 jamの情報を見るやり方がわかりません。
jamのbyte[]を文字列化してバージョン部分を読み取る
>>492 ありがとうございます。
jamがどうなってるか調べて普通に読みこまないといけないんですね。
494 :
デフォルトの名無しさん :2007/01/20(土) 23:51:35
サーバー上にtxtファイルを置いて、読み込みをしようかと
思っているのですが、
String accessURL = "
http://hoge.com/hogehoge/test.txt ";
HttpConnection con = (HttpConnection)(Connector.open(accessURL, Connector.READ, false));
ここで例外が発生して
java.lang.SecurityException: Illegal host
と表示されます。どっかの設定という気がするのですが、
どうすればよいのか教えて頂けませんでしょうか。
496 :
494 :2007/01/21(日) 00:06:27
すいません。大事なことを書き忘れです。 エミュレータ上で通信を正常に行いたいのです。 環境はeclipse3.2 DoJa4.1 ADFはUserNetworkをhttpにチェック 通信を許可するURLを * にしています
iアプリごときでeclipseを使う意味がわからん
オートコレクト便利じゃーん
あぁテキストエディタとして使ってんのねw
たいしたiアプリは作ったことが無いから言ってるんだろ
eclipse使うとプリプロセッサが使いにくくなるのが問題だな だれかプリプロセッサプラグインをつくってほすぃ
503 :
494 :2007/01/21(日) 11:11:24
自己解決しました。 設定-Doja4.1Environment-ネットワーク設定-ADFのURL で正しくtxtファイルを置いてあるフォルダを指定する、と。 パッケージエクスプローラーで、編集するフォルダを選択しておかないと ここが書き換えられないとは、初めて知りました。 (いつもなぜグレーアウトされているのか疑問だったのですが) お騒がせしました。
>>499 eclipseがらみの自己解決できない動作に悩まされることがない
このスレでもよく見るだろ?
eclipseで○○ってなります、どうすればいいですか?ってやつ
>>504 なんか後ろ向きなメリットだな
とりあえずMIDP(softbank・willcom)とdojaとが同じ環境で開発できるから使ってるよ。
506 :
494 :2007/01/21(日) 19:52:00
再び教えてくんです。 サーバ上に乗せた連番のテキストファイルを順番に読みたいのですが、 テキストファイル数は固定していません(随時増やすため)。 で、Connector.openで連番を探っていくわけですが、ファイルが存在しない場合 connect()で例外が発生します。 tryでConnector.openをしているので、close()出来ないし、そもそも例外で 以後のファイルが存在しないことを把握するのは違う気がしまして。 ロジックを教えて頂ければ幸いです。
HTTPが返すコードを参照する
>>506 iアプリの質問から離れているが簡単にアドバイス。詳しくはJavaスレで。
>tryでConnector.openをしているので、close()出来ないし
catch{}なりfinally{}なりにクローズ処理を書けばいい。
>例外で以後のファイルが存在しないことを把握するのは違う気がしまして
それは気にしなくていいと思う。
エラーが予想できる命令を敢えて実行してみて、
その結果どうなるかを判定するような使い方もtryの自然な使い方。
それでもキモチワルイナーと思うなら、最初にファイル数を取得する、かな。単純に。
509 :
494 :2007/01/21(日) 23:10:11
>>508 この件はこれで最後にしますので、1点。
catchではエラー扱いになっちゃうのですよ。
初期化されていない可能性または処理されない例外
として。
書き方の問題なんでしょうかね?
>>509 はじめにnullを入れるとか。
Class class;をClass class = null;に。
catchの中にもtry書くとか。
511 :
508 :2007/01/22(月) 02:57:44
>>509 >>510 のようにする。
「HttpConnection try catch finally」でググればいくつもソースが見られるよ。
方法1:アプリのソースに個数をあらかじめ記憶しておく 方法2:サーバー上に設定ファイルを作成しておいてそこから個数を取得 方法3:エラー返ってくるまでループする 方法4:CGI作成しておいてサーバーのファイルの個数などの情報を返す 方法5:JAR圧縮を用いて一つのファイルにしておく とかちょっと考えただけで思いつくな。楽なのは1。機種や処理内容によっては5。 余談:判らなかったら無視してて。 ちょっと話がそれるがテキストファイルが何個くらいになるのか知らないが 多いと1ファイルアクセスごとにコネクタを開く必要があるから凄く遅い。 1ファイルにデータ詰め込むとか、複数のファイルを合体させて 通信で取得できるサイズに分割してから取得するとかすると良くなるよ。
513 :
デフォルトの名無しさん :2007/01/23(火) 13:45:11
>>477 レスありがとうございます。大変役に立ちました。
514 :
デフォルトの名無しさん :2007/01/23(火) 14:53:57
テキストボックスに表示されている文字列をコピーするには どうしたらいいのでしょうか?
>>514 変数でごく普通にコピーすればいいんじゃね?
それとも意味が違うのか??
516 :
デフォルトの名無しさん :2007/01/23(火) 15:29:52
メモリ上にコピーするという意味です。 言葉が足らずにすいません
>>516 壮大ななぞなぞをやってる気分だぞ・・・。
String aとbが存在してたとして
aにテキストボックスの内容が格納されてるとして
b = a;
みたいな内容のことか?
あ・・・もしや入力されたデータを取得できんのか。
getTextを使え。テキストボックスのリファレンスに書いてあるだろう。
メモリ上ってのがイマイチだけどこういうこと? TextBox tbXX; 〜中略〜 byte buf[] = tbXX.getText().getBytes()
519 :
デフォルトの名無しさん :2007/01/23(火) 15:41:27
いい表現が見つかりました。 携帯電話のクリップボードにコピーという意味です。
('д')!
>>519 iアプリってかjavaにそういう機能は恐らく無いはず。
機種依存で文字入力時にコピーできる機種も存在してるとか聞いた事はあるが。
J2MEにはある
523 :
悩 :2007/01/23(火) 20:48:56
SD-Bindingヘッダの指定ってどうやればいいんですか?配信コンテンツが置かれているサーバーの.htmlで 下記のように設定しました。Docomoのサイトをみるとコンテンツ配信時の HTTPレスポンスヘッダに指定してくださいと書いてあるのですが,これで いいのでしょうか。。 <HTML> <HEAD> <X-Dcm-Move: 0000> <TITLE>携帯動画</TITLE> </HEAD> </BODY> </HTML>
>>523 まずはHTTPレスポンスヘッダについて調べてみ。
そして調べればわかると思うが、CGI等を使う必要がある。
アプリをダウンロード後起動時にJavaのロゴが出ている間に 携帯のフリップ閉じるとアプリが落ちたり画面が真っ白になったりするんだけど何でだろ。 次回起動時はJavaロゴは表示されなくなってフリップ閉じても大丈夫。うーむ。
526 :
521 :2007/01/24(水) 11:05:48
>>522 ん〜〜色々検索とかしてみたがやっぱなさそうな・・・。
どのクラスなのかくらい教えてくれんかの。
528 :
521 :2007/01/25(木) 11:02:22
>>527 レスサンクス。
自分で無いと言っておいてあると
言われるとなんか気になってね。
アニメーションマスターでMascot Capsule用のデータを作りたいと思ってるのですが、 どこかにプラグインが落ちてないでしょうか?
530 :
デフォルトの名無しさん :2007/01/25(木) 17:11:05
mbac、mtraから作成したd4dファイルなのですが、 テクスチャが張られずに困っています。 モデル描画とアニメはするのですが、以下のやり方ではまずいでしょうか。 InputStream is = Connector.openInputStream("resource:///01.d4d"); group = (Group)Object3D.createInstance(is); int num_obj = group[j].getNumElements(); for( int i = 0 ; i < num_obj ; i++ ) { Object3D obj=group[j].getElement(i); if(obj.getType()==Object3D.TYPE_ACTION_TABLE) act = (ActionTable) obj; else if(obj.getType()==Object3D.TYPE_FIGURE) model = (Figure) obj ; else if(obj.getType()==Object3D.TYPE_TEXTURE) texture = (Texture) obj ; } model.setTexture(texture); model.setAction(act,0); model.setTime(0);
903以降で携帯にアプリをダウンロードした後アプリ内でリソースもしくはストレージ内のクラスファイルを 実行できるような機能ってあります?いろいろ調べて今んとこ見あたんないんですが、、やっぱりない…?
他の方法で何とかしろ
やっぱ無いですか。アプリ内でプログラムをコンパイルして実行ってのがやりたかったんです 諦めます…
534 :
デフォルトの名無しさん :2007/01/28(日) 14:07:04
IllegalStateExceptionをアプリ内で投げたいのですが ライブラリに見つかりません。 これは不正または不適切なときにメソッドが呼び出されないように作れということでしょうか? どうしてもそういう例外クラスを投げたいときは 自分で作れということでしょうか
com.nttdocomo.lang.IllegalStateException
.jarファイルが肥大してしまい困ります。 リソースの画像ファイルのせいみたいなのですが、解決方法はないでしょうか?
画像を減らす SPを活用する
色を減らす
ソースを減らす
メガアプリ専用にする
サウンドについて質問です midiから変換したMDLファイルが2つあるんですが、 そのうち1つ目のMDL(BGM)を AudioPresenter.getAudioPresenter(0) で 取得した再生オブジェクトで再生しながら、もうひとつのMDL(効果音)を AudioPresenter.getAudioPresenter(1) で取得した取得した再生オブジェクトで 再生すると何か音が壊れたような感じになってうまく再生できません。 BGMが再生終了した後に効果音のほうを鳴らすと正常に聞こえます。 音を重ねて再生するのに何か特別な方法ってあるのでしょうか?
時代が追いつくまで待つ
機種も時代も書いてないからわからんが、 2ファイルの合計が端末の発音数(和音数のほうが判り易いか?)以上使って しまってるんじゃね? でもまあ簡単に使い切れるほど数は少なくはねえというか、 だいたいデータファイル側の作り方に問題があると思われる
544 :
デフォルトの名無しさん :2007/01/29(月) 01:27:24
スクラッチパッドって、ファイル名で保存されるんですか?
>>544 ファイル名で保存されるって意味がよくわからんが
スクラッチパッドに限らずどんなファイルシステムでも多分そういう保存の仕方はしてないと思われ
スクラッチパッドは10円玉で削るとデータが見えるよ
548 :
デフォルトの名無しさん :2007/01/29(月) 07:03:53
DoJa 3.0を使っています "package 〜"が1行目に書かれたjavaファイル20個ほどを ビルドしようとすると失敗してしまいます 1行目の"package 〜"を除去するとうまくビルドできるのですが 1行目に"package 〜"をつけたままビルドする方法はありますか? また,自作したjarファイルをiαppli Toolで使いたい場合は このjarファイルをどこに置けばビルドできるのでしょうか?
549 :
デフォルトの名無しさん :2007/01/29(月) 07:12:28
どこを削ればいいの?
乗るなよww
作ったiアプリをネットから自分の携帯にダウンロードする方法がしりたいんだけど。 作るのに使ったのはメモ帳とDocomoのDoja4.1てやつ。 エミュ上では動く。あとは何を伝えればいいかわからないや。 ずっとこのスレ見てるので、誰かよろしく。
>>548 >ビルドしようとすると失敗してしまいます
エラーメッセージは何と書いてある?それ次第かと
>このjarファイルをどこに置けばビルドできるのでしょうか?
スクラッチに保存するようにしてから利用する。
それが嫌ならjarの中身をそのままリソースにぶち込めばいい。
555 :
デフォルトの名無しさん :2007/01/29(月) 15:39:35
>>554 C:\iDKDoJa3.0\apps\test\src\Test.java:7: クラス test.TestClass が import に見つかりません。
TestもTestClassもC:\iDKDoJa3.0\apps\test\srcの中です
ビルド時のパスがここに通っていないことは分かるのですが
どう通したらいいかが分からなくて困っています。
>>555 とりあえず現象の発生する最小のソースを貼ってみて。
多分かなりの突っ込みが入ると思うわ。
>>555 src\testの中にTestClassがないと駄目だったと思うが?
>>555 >ビルド時のパスがここに通っていないことは分かるのですが
>どう通したらいいかが分からなくて困っています。
わかってるなら調べるなりしてくれよ
>>556 じっくりソースを見ていろいろ実験したところ
解決いたしましたm(_ _)m
結局何が原因だったの?
563 :
デフォルトの名無しさん :2007/01/29(月) 17:41:46
564 :
あぷらん :2007/01/29(月) 17:49:42
常駐型iアプリで、その端末のパケット計測(メール+WEBの通信量の計測)をするプログラムってできるの?
結局クラスがたくさんありすぎて整理できていなかったのが 原因のようです。 appsフォルダのsrcの中のjavaファイルは全部ビルドされるようですね(;^_^A お騒がせしました
そんなことできたらdocomoが作ってるな
それはパケ取ってるんじゃなくてドコモのDBからデータ取ってるだけ 一日おきしか更新されない ドコモサイトのDB使ってるから同じサイトのドコモしか作れない
質問です。 画像の切り分けを行いたいのですが、 x,yの始点、終点を指定してImageに切り抜く事は出来ませんか? getPixelsでピクセル値はとれましたが、 一度表示しなくては成らないのです。 良い方法を知ってる方居ましたらよろしくお願いします
Image#createImage(int width, int height) と Image#getGraphics() と Graphics#drawImage(Image image, int[] matrix, int sx, int sy, int width, int height) を使う。 ちなみに透過部分は切り抜けないと思った方がいい。
スマンこっちのが楽 Graphics#drawImage(Image image, int dx, int dy, int sx, int sy, int width, int height)
すいません言葉足らずでした 一枚の絵から切り抜きたいのですが、 mi = MediaManager.getImage("resource:///Takeshi.gif"); mi.use() Image img = mi.getImage(); 等としてimgに元の画像が入ったとして、 その後に Image after = img(切り抜きたい所!); 等して直接代入したいのです drawImageですと一度描画しなきゃならないですよね? 裏でという手もあるのでしょうが もっと良い方法があればと思い質問しました 571迅速に対応して頂いたのに申し訳ないです 透過部分が切り抜けないというのは知らなかったので勉強になりました
>>573 >>571 ,572 は、Canvas に描画するんじゃなくて、直接 Image に描画するって言ってるんじゃない?
Image cut(Image img,int x,int y,int width,int height){ Image img = createImage(width,height); Graphics g = img.getGraphics(); g.drawImage(img,0,0x,y,width,height); return img; } かな… 背景の色はCanvasのデフォルトの背景色になります 突貫工事ですのでミスしたらゴメンw
ごめ Image cut(Image img,int x,int y,int width,int height){ Image img2 = createImage(width,height); Graphics g = img2.getGraphics(); g.drawImage(img,0,0x,y,width,height); return img; } Image imgは既に定義してた…
577 :
576 :2007/01/31(水) 13:53:04
Image.createImage(width,height);
突貫工事の罠付き576が熱い。
GPSなどで緯度経度高度と測位する方法を教えていただけませんか? 例えばこんな感じでしょうか? LocationProvider locationProvider; locationProvider=LocationProvider.getLocationProvider(LocationProvider.METHOD_GPS ); Location thisLocation; thislocation=locationProvider.getLocation(0); System.out.println("高度:"+thisLocation.getAltitude() ); System.out.println("緯度:"+thisLocation.getLatitude() ); System.out.println("経度:"+thisLocation.getLongitude() ); などと書いてみたのですがエラーが出るんですよね ところで、サンプルプログラムが見つからなかったのですが DoJa5.0でも、もしかしてトラステッドですか?
もしかしなくてもトラステッドです
581 :
579 :2007/01/31(水) 16:02:37
まぬけミスthisLocationをthislocationと書き違えてた さらにtryで挟まないといけないらしく LocationProvider locationProvider; locationProvider=LocationProvider.getLocationProvider( LocationProvider.METHOD_GPS ); Location thisLocation=null; try{ thisLocation=locationProvider.getLocation(0); }catch(Exception e){ } System.out.println("高度:"+thisLocation.getAltitude() ); System.out.println("緯度:"+thisLocation.getLatitude() ); System.out.println("経度:"+thisLocation.getLongitude() ); そしてトラステッドだった もしもトラステッドでない方法があるとしたら教えてください
Image cut(Image img,int x,int y,int width,int height){ Image img2 = Image.createImage(width,height); Graphics g = img2.getGraphics(); g.drawImage(img,0,0,x,y,width,height); return img; } 完全修正版…かなw 仕様 切り取る左上座標x,y 切り取る大きさwidth height 出力 Image型 サイズは切り取る時に指定したサイズ 入力値に透過GIFを指定した場合、その部分の色はCanvasのデフォルトの背景色になる。
iアプリ単体での測位は不可。 代替手段としてWebからiエリアと同じ感じでGPSの測位が可能。 …なんだが、公式サイトだったかもしれない。 忘れた(´д`)
>>582 まだ罠が残ってるぞw
これ↓
>return img;
本当だ sumann
586 :
579 :2007/01/31(水) 16:46:20
ありがとうございます >代替手段としてWebからiエリアと同じ感じでGPSの測位が可能。 の詳細を知りたいです
>>586 iエリアについては調べてほしい。
GPSがiエリアと同じようなHTMLタグで実行できたはず。
iエリアは一般でも利用可能だけどGPSについてはわからない。
緯度経度はWebのPOSTパラメータとして取得できるので、
Webから緯度経度をパラメータとしてアプリに渡すか、
Webサイトで固体識別、緯度経度の保存を行うようにして、
アプリ側からWebへ緯度経度を取りに行くような形になるかと。
使う側からするとiモードを起動しないとならないので
かなり不便ではあると思う。
588 :
579 :2007/01/31(水) 18:14:09
何でGPSをトラステッドにしたんだドコモは… 解禁しとけば今頃アイデアにあふれた勝手アプリが沢山出てただろうに
ドコモとしては面白いアプリができるかどうかより セキュリティ確保と個人情報保護が重要。 端末の位置情報はそれに関わると判断しただけのこと。
GPS使うアプリは鯖と通信できないって仕様だったら良かったのにね
java初心者でiアプリ作成にチャレンジしてるんですが、double型の数値を表示する際に 小数点以下の表示桁を指定する方法がわかりません。 どなたか、教えていただけないでしょうか。
javaスレで聞きなさいよ
あれ、doubleって最近のDoJaなら使えるんだっけ?
>>594 901i Doja4.0以降なら使えるんじゃないの?実機もってないから知らんけど
>>596 そっか、サンクス。
演算速度とかどうなのかなぁ。
まぁ使わないで良いか。
proguardやってjargやってpreverifyして7zipで固める。 どれだけ縮むかは元のソース次第だ。 普通のJava的な書き方だと半分くらいになるが、 バリバリ携帯向けに書いている場合は1割減らないこともある。
600 :
san :2007/02/01(木) 18:02:10
iアプリでt9のような英語入力を、、、、 どなたかご存じの方いらっしゃいませんか? ずっと探してるんですが、、、、、 ドコモの携帯(d903i)を使ってますが、いつも英語の文章入力で苦労しています。 できればT9のような物があればいいのですが、、、、、
T9が何かは知らんが文字入力画面のことであれば、アプリとは全く別物。 あれは端末の機能だからアプリから操作できない。 ここじゃなくて三菱に直接電話して聞いてみろw
また、本コンテストにプログラム開発が出来ない方でも気軽に参加が出来るように、 株式会社プロファイア の協力により携帯電話からJavaTMアプリを簡単に作成することができるアプリ製作 ツールを3月1日より提供する予定です。
>>603 そうですよ。確か開発はアプリックスです。
>>573 ドコモJavaにはイメージフィルターが無いから
画像オブジェを切り抜いて別の画像オブジェに代入するのは不可能です
(PC用のJavaなら可能)
iアプリはもともと低メモリー設定だったので
メモリーをやたらに食う画像や音楽データーを
プログラム内で増幅させるような命令は存在しません
相談です。 配列に[r1,r2,s4,s4,k5,k5,r5]という各文字列が入っていたとします。 ここでいうと、r,s,kに数字が付随したものになっています。 これらの数字を除外した文字列のファイルを読み込み、 配列内の文字列の一致する行のデータを読んでやりたいですが… [r.data][s.data][k.data] 【r.dataの中身】 {r1,文字列} {r2,文字列,数値,数値,文字列} ここで問題なのが for(int i=0;i<文字列の入った配列.length;i++){ 読み込みます } という処理にする場合、r.dataをr1,r2,r3....の数ループしてしまいます 何か効率的な方法はありませんか? 理想は一回のループで r1,r2,r3を読みこんで、次k・・・といった感じで読み込みたいです ソートして読み込んだりしましたが、、、どうにも上手くいかないです 誰か思いつく方居ましたらよろしくおねがいします
言いたいことが理解できないが r系を一括で読む→s系を一括で読む→k系を一括で・・・とやりたい? 配列昇順ソート(); // 必須 for(int i=0; i<配列.length; i++){ 指定ファイル開く(); 指定行ぶん読み込む while (次の配列が存在する && 次の配列が今開いてるファイルと同じである間) { 指定行に達するまで読み込む } }
>>608 の意味が解らない‥
配列やめて1つずつ作れば?
もしくは端から配列に入る内容を固定して、先頭から順番に使えば?
と、適当極まりないアドバイスを。
なんてーか、初心者増えたな('A`)y-~~ 今度はJavaどころかアルゴリズムの話なのか?
>608 >配列に[r1,r2,s4,s4,k5,k5,r5]という各文字列が入っていたとします。 >ここでいうと、r,s,kに数字が付随したものになっています。 この時点で意味わからないよ。 iアプリでもJavaでもない相談だし、アルゴリズム解説関係のスレ行った方がいい。
去年から辞書アプリがどうのこうの言ってる人だろう、これ。 質問内容ファイル複数とか関係ないな。だからみんな混乱してる。 rはファイル名、1はデータ内でのインデックス番号って事っしょ。 で、質問は自分で作ったデータの塊からデータを抜き出す方法で 効率を良くしたいから何か案ねぇか?って事だろう? んなの答えは簡単。r.dataとか自作データの塊の作り方を工夫しなさい。 内容見る限り、1つの取得するデータの長さが不定だから 出た先頭部分にドコにどのデータがあるかという見出し部分を作っておく のが一番効率がいいと思われる。後はそこの数値をみて直接アクセスするのが良い。 明らかにデータの各先頭に書かれているラベルに値するものを毎度ループして 探すよりは良い。 あとやっぱスレ違いだ。
携帯で使える文字コードはShift_JISだと このスレで伺いました。 仕様にもそう書かれているそうです。 しかしDoJa 3.0のエミュでバイト列をShift_JISでエンコードしたら UnsupportedEncodingExceptionを投げてしまいました。 なぜでしょうか?
"SJIS"って書いてる?
>>615 "Shift_JIS"としてます
もしかして"SJIS"と書かないといけないということでしょうか。
試してみます
doja4.0だけど"Shift_JIS"じゃエラーでる
エンコードを0からZZZZZZまで順番に指定して確かめたけどSJISしかダメだった。UTF8とかもダメ。
初心者の質問で申し訳ないですが、 GetStreamingImageで3gpを取得して VisualPresenterで再生しようと思うのですが、 動画の読み込み開始位置をアプリ側から設定できるのでしょうか? サーバにキーイベントを送りつつ動画のライブストリーミングを試しているのですが、 詰まってしまいます・・・
個人じゃどうせ大容量のアプリなんて作れないから7シリーズで十分かな?
>>621 いや、そうともいえない。
画像に凝ったものを作れば、あっというまに大容量のアプリになる。
メガアプリのサイズがあれば、普通にクラス使ってプログラミングができるぞ。 100kでもできなくは無いけど、やっぱりサイズが足りなくなる場合がある。
プログラムサイズはアプリ内容以外にも 個人のプログラミング能力がじかに反映されるとおもうがw 同じ内容でも作り手次第で数kバイト変化する。 どっちが良いとはやる内容次第だがw
おいらみたいなへちょいプログラマは、 構造化プログラミングはせいぜい1000行が限界。 1ヶ月も経つとどこがどうなってたのかさっぱりわからなくなる。
縦10画面分以上の長さ以上のメソッドを見ると気分悪くなる iMonaのソースは開いた瞬間閉じた
imonaのソースを見ていると頭痛がしてくる
プラグインだかdllじゃないけど外部から利用できるアプリが作れればなぁ 今のアプリ連携はちょっと
Javaの場合、高度なプログラミングするほうが容量が増えてしまうんだよね クラス分けせずifの多用みたいなゴチャゴチャしたプログラムのほうが むしろサイズが小さくて済む
>>629 クラス分けしないプログラミングのほうが、ある意味非常に高度だと思うが・・・
503から作ってる俺は癖でもうクラスを使わなくなってきてる・・・。
503から作ってる俺が糞移植の仕事でクラス使うようになってきた。 クラスおもしれー、でも仕事はつまんねー
むしろ移植を考えるとクラス使わなくなってきた
移植を考えると吐き気がしてきた
636 :
デフォルトの名無しさん :2007/02/07(水) 00:59:34
Dojaの仕様書に下記のようにhttp通信のcloseが 別スレッドからできるとあったので試してみました。 が、確かに通信はキャンセルされるんですが、 通信していたスレッドでどうしても捕捉できない Uncaught exception java/lang/NullPointerException. が出てしまいます。 run()のブロックを出る直前で、catchできない・・・ で、runブロックを出た瞬間に強制終了。 どなたかお助けください。 >なおDoJa-2.0 プロファイル以降では、 >connect()メソッドが通信を行っている状態で、 >他のスレッドからそのHttpConnection インスタンスに対し >close()メソッドを呼び出すことで通信を切断させることができます。
>run()のブロックを出る直前で、catchできない・・・
>で、runブロックを出た瞬間に強制終了。
ソース見せずにそんなこと言われてもわけわかんないよw
close()するスレッドでフラグ立てて、通信元のスレッドでそれを監視しておく、
くらいかなあ。
>>636 の文面だけから判断するなら。
public class HttpPanel extends Panel implements SoftKeyListener , Runnable {
private HttpConnection http = null;
private InputStream in = null;
ByteArrayOutputStream recv_out = null;
Thread thread = new Thread(this);
//キャンセル実験用にsleep(10)して10秒間sleepするphp
String scriptUrl = "
http://XXXX.php ";
String postStr = "";
String resultStr = "";
public HttpPanel() {
this.setSoftLabel(SOFT_KEY_1,"通信");
this.setSoftLabel(SOFT_KEY_2,"stop");
this.setSoftKeyListener(this);
}
public void softKeyPressed(int arg0) { }
public void softKeyReleased(int arg0) {
if(arg0 == SOFT_KEY_1){
this.thread.start();//通信開始
} else if(arg0 == SOFT_KEY_2){
this.clear_http();//通信キャンセル
}
}
public void run(){ try { http =(HttpConnection) Connector.open(this.scriptUrl,Connector.READ_WRITE,true); http.setRequestMethod(HttpConnection.POST); http.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); OutputStream out = http.openOutputStream(); out.write(this.postStr.getBytes()); out.close(); http.connect(); if(http.getResponseCode() == HttpConnection.HTTP_OK){ in = http.openInputStream(); recv_out = new ByteArrayOutputStream(); byte[] buf = new byte[128]; int t; try{ while ((t = in.read(buf)) != -1) { recv_out.write(buf, 0, t); } this.resultStr = new String(recv_out.toByteArray(), "SJIS"); } catch (Exception e) { } finally{ in.close(); recv_out.close(); } } else { } } catch (Exception e) { } finally { this.clear_http(); } }
final private void clear_http(){ try { if (in != null) { in.close(); in = null; } if (http != null) { http.close(); http = null; } } catch (Exception e) { http = null; in = null; } } }
↑長文で板汚しすみません。
>>637 ↑はSoftkey1で通信開始、Softkey2で通信キャンセルするPanelです。
Softkey2を押して
clear_http()のhttp.close();
でキャンセルされるんですが、そのあとアプリが強制されちゃいます。
キャンセルしない場合は、通信は上手くいきます。
よろしくお願いします。
642 :
637 :2007/02/07(水) 06:51:33
ごっそり貼り付けてくるとは思わなかった。そういう時はアップローダ使った方がいいよ。 で、ざっと眺めて気付いたことを書いてみる。当たるも八卦、当たらぬも八卦。 try{ …(1) while ((t = in.read(buf)) != -1) { 省略 } } catch (Exception e) { } finally{ …(2) in.close(); …(3) } run()内で、(1)のtry{}を実行中にソフトキー2によってclear_http()が実行された場合、(2)へ飛ぶ。 clear_http()によってすでにinはnullなので(3)のin.close()は失敗する。 finally{}ではtry-catchしてないのでそのままNullPointerExceptionで終了、ってオチだと思う。 clear_http()メソッドにも気になるとこがある。 in.close()に失敗した場合、http.close()されないままhttpをnullにしてしまう。 もしかしたらこれも何か関係してるかもしれない。 >run()のブロックを出る直前で、catchできない・・・ catchできないんじゃなくて、catchしても何もしてないんじゃん?
>>625 構造化した方が分かりやすく覚えやすくなるよ
もしそうならないとしたら失敗してる無駄な構造化
ぬるぽが出てるんならガッすればいいじゃない if (in != null) in.close();
>>644 ガッ
if( in != null ) {
in.close();
in = null;
}
646 :
636 :2007/02/08(木) 02:44:35
try { http =(HttpConnection) Connector.open("http〜",Connector.READ_WRITE,true); //http.setRequestMethod & http.setRequestProperty OutputStream out = null; try { out = http.openOutputStream(); out.write(this.postStr.getBytes()); } finally { try { out.close();} finally { out = null; } } http.connect(); if(http.getResponseCode() == HttpConnection.HTTP_OK){ InputStream in = null; try { in = http.openInputStream(); ByteArrayOutputStream recv_out = null; try{ recv_out = new ByteArrayOutputStream(); //受信処理 } finally { try { recv_out.close();} finally { recv_out = null; } } } finally { try { in.close();} finally { in = null; } } } } finally { this.clear_http(); }
647 :
636 :2007/02/08(木) 02:49:11
ご指摘ありがとうございました。 ありがとうございました。 ↑は改行減のためかなりはしょりましたが(catch等)、 run()内を上のようにして例外をキチンととったら、 他のスレッドからのhttp.close()で java.io.InterruptedIOExceptionが拾えるようになりました。 例外がとれないとかマヌケなこといってすみません。 拾ってないだけでした。
テキストビューアを作ってるんだけど 手抜きして str += new String(bytes)みたいにString型の連結をやってたら落ちやすいね。 StringBuffer.append(new String(bytes))でやるとちゃんと期待通り動く。 javaのメモリ管理はよくわからん。
CLDCのAPIリファレンスでStringBufferの説明を読めばよく分かると思う。
>>650 こりゃためになるわ
StringBufferは倍々拡張だったのか
スレ違いかも知れないけど質問 自分の作ったiアプリ(自分のFOMAでは問題なく動く)を友達に メールで教えてあげたら「エラーで動かない」とのこと この友達がすごく身近な人だったら”Dialogいっぱい埋め込んだ バージョン”で試してもらってどこでおかしいのか逐次報告受けつつ バグの原因探れるんだけど、プログラムのことわからない人に そこまでしてもらうの悪いし頻繁に連絡取れないし。 んで、自作iアプリをテストしてくれるようなスレってありますかね? 自分以外の機種でどういう動きするのか未知なところもあるので
ここで桶
>>652 あなたのFOMAの機種は?
友達の機種は?
浮動小数点数くさいなぁ…
とりあえず自分のと相手の機種名を正確に晒せ。 まずはそれからだ。 つーか、そもそもお前がプログラムのことわかってない。
656 :
652 :2007/02/12(月) 10:31:32
そういうスレないんですかね。すみませんでした・・ 自分の機種は N901iS 相手の機種はたぶん SH902is だったと思います たぶんとしか言えないのが申し訳ないですが。 開発環境は DoJa-5.0 浮動小数点は使っていません
その情報だけだと単純に下手なプログラム組んでるんじゃないかとしか 思えないわけなんだが。 とりあえず一般に必要な情報 ・機種名 ・どの段階でエラーが出るのか (ダウンロード時、起動すらしない、起動してから特定のタイミング) ・サウンド使用の有無 (サウンドを切れば動作することもある) そして何より、iアプリにはトレース情報吐く機能付いてるから JamのAppTraceをonにして動作させて 携帯端末のメニューからエラーの内容を確認すると手っ取り早い。
解った!
>>656 ニューロポインタ使ってるだろw
659 :
652 :2007/02/12(月) 11:32:11
うーん。自分のプログラミングがへっぽこなのは百も承知です
機種依存的な組み方をしてないはずなのに他のFOMAで動かないの
だからプログラム構造にどこか致命的な欠陥があるんでしょうね
自分もバグに関してほとんど情報も無いのにここの方に
原因まで探ってもらおうとかそういうつもりじゃなかったんです
はじめここにレスしたのは、「他機種でもうまく動くかのテスト & うまく
動かない場合に解析に付き合ってくれる」ような、そんな都合のいいスレが
どこかにあったらいいな、と思ってスレ違いかもしれないけど書き込んだ次第です。
アプリ晒します。
http://www.hp.infoseek.co.jp/~destiny999/BS/Download.htm 漢字検定の勉強をするための自作アプリです。(初回http通信あり)
ヒマな人は落としてみてください。もし不具合があったら機種名と
どこでどういうエラーになるか教えていただけると幸いです
>>658 ニューロポインタは使ってないです
>>657 サウンドは使っていません
トレース内容を実機で確認出来るとは知りませんでした
今後活用していこうと思います
多分鯖が原因だと思われる contentーlengthがきちんと返ってきてるか確かめてみて
あれ、404だけど消したのかな。 iswebは俺も使っているから問題ないはず。
Lが抜けてるみたいよ
sh902iだけど普通に動く どんな時にエラーがでるのか詳しく
実はSH900を使ってるに1票(゚ω゚)ノ
665 :
652 :2007/02/12(月) 14:09:12
>>665 N902iXですが、DL出来ました。
動作も問題ないです。
タイトル画面の『成績』の動作が解りませんが…
もしかしてアプリの通信を許可して無いとかじゃねーか?(゚Д゚)
668 :
666 :2007/02/12(月) 16:24:31
>>667 自分へのレスなのかな?
端末側からのアプリの通信は許可してます。
てか、通信許可してないとアプリが立ち上がらないし…
ゲーム?を進めていかないと成績のイベントは発生しないのかな?
うーん N900iだが、ダウンロードが終わったあとメニュー画面で何かを選択(決定キー)すると落ちてしまう。 AppTrace出してくれたらコピペするよ。
追記 メニュー1キーの"設定"は問題なし。上から2番目の"設定"は落ちる。
671 :
666 :2007/02/12(月) 19:41:43
プログラムとは関係ないですが… ・設定でのカーソル色がわかりずらい ・読みの長さによって、出題のルビが重なって表示される ・出題の読みが多い場合、下に表示されている候補に被って見づらくなる こんなところに気付きました。
Doja5.0が動く携帯でDoja2.0の環境でビルドしたものとかって動くの?
動くよ
ここは急に良スレになりましたですね
675 :
672 :2007/02/12(月) 20:45:55
676 :
652 :2007/02/13(火) 12:09:00
さっき友人に確認取れました
機種はSH902Iらしくタイトルから先に進むときにアプリが異常終了してるぽいです
DLして動かしてくださった方々、ありがとうございます
現在データファイルのフォーマット変更中でして、その対応と平行して要所(モード変更時やcatch内)に
トレース文を入れたバージョンを作成する予定です
「成績」はまだ作成してないコンテンツです
>>670 とても重要な情報です。今日帰宅したら該当部分のソースを洗ってみます
>>671 ご指摘参考になります
元は自分の勉強用に作ったアプリなので作りが甘い箇所を現在修正中です
良スレの予感。 俺もテスターに参加しよう。
678 :
666 :2007/02/13(火) 12:56:15
>>676 N902iXですが、PLAY中に解答入力確定動作で異常終了しました。
良スレとか言ってるのは仕事でやってない奴等だろう'`,、('∀`) '`,、
コマンドからのエミュの起動について質問があります。 作成しているアプリが「test」と言うものだった場合 Doja-4.0までは doja.exe -i test.jam -u サーバ上のtest.jam で問題なく起動できていましたが、Doja-4.1とDoja-5.0では エミュが起動した直後、すぐエミュが落ちます。 通常通りdoja.exeを起動して、新規プロジェクト作成で「test」プロジェクトを作成し C:\iDKDoJa4.1\apps\test\bin\の中に test.jamとtest.jarファイルを上書きして起動した場合 問題なく起動するため、test.jamとtest.jarファイルに問題があるわけでは 無いようです。 Doja-4.1 と Doja-5.0 でコマンドから起動する場合に 何か変更点あるのでしょうか?
フルパスで指定
682 :
680 :2007/02/13(火) 16:21:20
>> 681 ご返答ありがとうございます。 tset.jamをフルパスで指定しましたが結果は変わりませんでした。 なお、Doja-4.0の方ではフルパス、相対パスともに動作いたしました。
外しましたか。 -mx 50Mのような巨大なヒープ指定をしていれば小さくする。
あと、-uのurlもチェックされていて、不正だと終了します。
685 :
680 :2007/02/13(火) 17:08:46
ご返答ありがとうございます。 > -mx 50Mのような巨大なヒープ指定をしていれば小さくする。 ヒープサイズは指定していませんのでデフォルトの8Mだと思います。 一応 -mx 8M を付けて見ましたが、結果は同じでした。 > -uのurlもチェックされていて、不正だと終了します。 こちらのurlに関しても、 doja.exeを実行し、メニューの ツール→ADFチェック でチェックし 問題なかったものを、 -u で渡していますが、起動しませんでした。
>>685 カレントディレクトリの問題かと思われる。
起動するディレクトリの位置とかspディレクトリの有無とかいろいろ試してみたら。
…と言うか、サーバ上のjamも指定できたのか。
>>679 無償で人柱になってくれるありがたみは仕事で作ってる奴の方が分かるだろう
常識的に考えて
仕事でやってる奴は表出せねーよ('A`) それに問題ある機種は一通り会社で買ってあるし。
それはただのノルマの問題だろう。 手伝ってもらう事とは関係ないだろう?だろう?
プロでやってるってだけで素人を見下して優越感に浸ってるんじゃねーの?
予想外のレスにかなり戸惑うな('A`)
余計な事を書き込むからだよ
694 :
666 :2007/02/13(火) 21:25:20
デバッガの募集は他所でやれw
>>630 setNum(n)だのgetNum()だの作るとあからさまに遅くなるしサイズでかくなる。
C++ならコンパイラが最適化してくれるけどJAVAじゃねぇ・・・
携帯だとメモリ容量とかダウンロードサイズとか
CPUをまわしたぶんだけ電池減るとかで相当悩むし。
大規模なアプリケーションならOOPも必要だと思うけど、
携帯アプリ程度ならガリガリ書いてもいいんじゃね?
697 :
652 :2007/02/14(水) 07:36:46
クラス多くて追うの面倒なソースだな(´・ω・`)
>>697 メニューからたどってったらiアプリに
たどり着く前に何かそれっぽいメニューがあると思うのだが。
>>697 N901iSは無いからわからないけど、N901iCでは
メニュー→iアプリ→アプリ実行情報→トーレス情報
で取得できる。
ショートカットでiアプリメニューに行ってしまうと確認できないので注意。
型番が近いから、動作も似たようなものでしょ。
>>697 N系ならiアプリ→iアプリ実行情報→トレース情報だと思います。
今Ver.では、解答入力後に正誤表示されず、次のキー入力後に一瞬だけ正誤表示して出題に移るのは使いづらいです。
バグが出たらトレースを貼ってみます。
701 :
680 :2007/02/14(水) 11:33:12
>>686 起動しました。
原因はbinフォルダでした。
私は各Dojaごとにjarを作成するしているので、bin_30 〜 bin_50LEという
フォルダを作り、バッチファイルで各jarを作り、それぞれのディレクトリに
入れているという方式をとっていました。
エミュで起動する際に、bin_41やbin_50などというディレクトリにjamおよび、jarファイルが
あると、エミュが正しく起動してくれないようです。
一度 bin ディレクトリを作成してそこにjamとjarをコピーし、binディレクトリ内のjamファイルを
doja.exeの引数にして起動したところ問題なくエミュが起動しました。
>>696 Javaの最適化は恐ろしい。インライン化可能なコードは実行時にどんどんインライン化する。C/C++の不得意なリンク時の最適化が、(今の)Javaは得意。
もちろん実装依存だから、携帯ではそんなことまでしないだろうけど。
>>697 メモリ不足だった…
ダウンロードは96%まで行くが、そこから20秒ほど固まった後落ちた。
そろそろ機種変か。
【部首マスター Ver1.02】
java.lang.OutOfMemoryError
init Dat(main)
init KFont State Start [Title] Class platform:N900i busyu 2 start! : data version = 18
3MBのJavaヒープメモリを持つ端末が非対応か。 贅沢なアプリだ。
704 :
666 :2007/02/14(水) 13:46:19
>>700 N902iX
解答部首を画数で選ぶかそうでないかによって挙動が変わる様です。
解答部首の画数がおかしい物がある
最後の全体の正誤表示で、間違いに対しての正解等詳しい解説?が出ると親切かも?
落ち、フリーズは今のところないです。
>>702 N900は通信周りに癖があるから、
対応させる気で書いたコードで無いなら諦めれ(´・ω・`)
Font.getLineBreak()って自作した方が10倍以上速いんだな 信頼して損したぜ
句読点や拗音意識すると結局自作が一番だね〜
移植を考えた場合、自作でやらないと、移植しにくくない?
>>706 ソースうpしてもらえませんか?
Unicode苦手で…
>>697 使用機種:P902i
エラーがおきた場所:8問目を回答した時
トレース情報: com.nttdocomo.ui.UIException: short timer #777 already used
結構勉強になります。
バグじゃないけど、回答時に入力方式を画数モードにして、タイトルに戻ってまたゲーム始めると一覧に戻ってるのが不便。
714 :
652 :2007/02/15(木) 13:07:17
遅くなりましたが、トレース情報確認できました。ありがとうございました
それと改良中の中途半端なバージョンをうpしてしまって申し訳ありませんでした
昨日乱数リスト生成時にバグが発生するのを突き止めました。既存バグをすべて修正して出直してきます
>>700 ソース修正中にrepaint()処理をうっかり消してしまったのが原因でした
ちゃんと基本動作確認できてないのに公開してしまったせいです
>>702 ログを見るとDL後の初期化でエラーみたいです
再帰処理などはやってないので、new[]で確保する配列数がバグ原因で大きくなったか、
単純にメモリ不足かでしょうか。初期化時のログを追加してみます
>>704 一覧上のフォントが仮のところが何箇所かあるので修正中です
>>710 キーリピート用のタイマーIDですが、机上で確認すると、なぜdisposeされずに再度来るのか不明です
ただブロックすることは可能なので対処します
706じゃないので処理速度はわからんが。こんなんでいかが? public static int getLineBreak(String str, int n, int w, Font f){ char cstr[] = str.toCharArray(); int r; int fw = f.stringWidth( " " ); int w2 = 0; int w3 = ( (cstr[n] & 0xff00) != 0 && (cstr[n] & 0xff00) != 0xff00 )? fw*2 : fw; for( r=n; r<cstr.length; r++){ if( r + 1 == cstr.length || cstr[r] == '\0') return r; if( cstr[r] == '\t' || cstr[r] == '\r' ){ cstr[r] = ' '; continue; } if(cstr[r] == '\n') return r; w2 += w3; w3 = ( (cstr[r+1] & 0xff00) != 0 && (cstr[r+1] & 0xff00) != 0xff00 )? fw*2 : fw; if( w2 + w3 > w ){ // 描画幅を超えれば改行、行末の改行コードは無視する if( r+1 < cstr.length && cstr[r+1] == '\r' ){ r++; cstr[r] = ' '; } if( r+1 < cstr.length && cstr[r+1] == '\n' ){ r++; } break; } } return r; }
それだとstrが長い時、str.toCharArray()でヒープ使いまくってしまうのが少し気になる…
元のソースは引数Stringじゃなくてchar[]なのと 改行後の濁点チェックとか入れてるんだけどね(´・ω・`) char[]だとイマイチわかり辛い気がしたので改悪した。
JarInflaterを使ってバイト配列のzip解凍を試みています。 なんとかJarInflaterにzipフォーマットが正しいと認識させたのですが、 read()で読んだ伸張後のデータがzipのままなのです。 元データのサイズは34,800バイト、下のダンプ内容も同じく34,800を指しており、 まったく伸張されていません。(内容も全く同じです) どこが悪いのかご指摘願えませんか。 100kb.txt を圧縮して 100kb.zip にしたものを使用しています。 個人的にはファイル名指定を .zip じゃなくて .txt にしなければならない?かと考えましたが、 それだとji.getSize()で -1 が返って来てしまいます。 byte zip_byte[]にはzip内容がキッチリ入ってるはずです。JarInflaterが認識してますので。 file_name = "100kb.zip"が入ってます。 --------------------------------------------- JarInflater ji = new JarInflater(zip_byte); InputStream is = ji.getInputStream(file_name); byte buf[] = new byte[(int)ji.getSize(file_name)]; // 伸張後のサイズ分のバッファ確保 int len = is.read(buf); String text = new String(buf, 0, len, "SJIS"); System.out.println("len = " + len); System.out.println("ji.getSize = " + ji.getSize(file_name));
719 :
718 :2007/02/15(木) 17:43:20
↑のソースでread()した buf を再度JarInflaterにかけたら何故かtxt展開後のサイズが取得できました。 なぜこのようになるのかが分かりません。
100kb.txtを100kb.zipに圧縮し偽装gifにして読み出す。 gifヘッダを抜いてzip部だけ抽出してJarInflaterにかけファイル名"100kb.zip"指定で取り出す。 (この時点ではまだzip解凍されていない) とりだしたデータを再度JarInflaterにかけて今度はファイル名"100kb.txt"指定で取り出す。 これでできました。
>>718 いまいち状況が飲込めないんだけど、Jarの中にzipファイルを入れてるってこと?
で、そのzipファイルはtxtの圧縮であると。
fine_nameで指定するのがJarで圧縮されている中のファイル名である、
ってところは認識は合ってるんだよね?
722 :
718 :2007/02/17(土) 02:25:18
すみませんバカなことしてました。
gifdeladというPCソフトでgif偽装してたのですが、その設定でついでにzip圧縮してしまうようにセットしてました。
つまりtxt→手動でzip→gifdeladがさらにzipしてgif偽装・・・という2回zipしていたのが原因でした。
なので
>>720 のような2回解凍しなきゃダメだったのです。
アプリは設計どおりに動いてて、単に偽装手順が間違ってたのです。
テキストエディタで直接zip内を見てたらzipヘッダが何故か2個付いてたので気付きました。
こんな感じです。
[gifヘッダ]...[zipヘッダ]...[ファイル名100kb.zip]...[zipヘッダ]...[ファイル名100kb.txt]...
>>721 txtをPCでzipしてminiSDに入れる→アプリでそれを読み出す・・・という機能です。
初歩的な質問で申し訳ないけど、自作アプリの実機でのテストで、 実機へのアプリの転送はインターネット経由以外にはないの? SDカード経由とか無理?
無い。
やるとわかるが、 どこもが一番楽。
SBMはアプリゲットとかの特定のサイトにアップしなきゃいけないし、 auのBREWは基本的に企業じゃないとアプリ作らせてもらえない上に 転送には専用ケーブル買わないといけない。 当然開発環境もオフィシャルな環境作るなら1500$ちょいかかる。 Docomoはとりあえずその辺の無料ホームページでもおいときゃ 落とせるんじゃね?w
auはオープンアプリ対応したけどどうなのさ
どっちかって言うとアレはCLDCスレ向きだな。 作る分にはSBMと大して変らないんじゃね? 気になるのは実行速度くらいだが、実機無いからワカンネ。
もうドコモ使ってる理由はアプリ作れるからってだけだからなぁ Auで自由にアプリ作れるようになったら速攻で移行する
いまさらあんなしょぼいランタイム環境なんてありえない。
通信ごとに確認ダイアログ それがauクオリティ
>>733 それはMIDP2.0の仕様だろ。
SBMも基本は確認、端末によっては設定次第という感じだぞ。
オプションAPIを使うにはライブラリが必要で、メーカーから落としてこいと書いてあったんだが全然見つからねぇ_| ̄|○ 教えて偉い人!!
iアプリの簡単なプログラムを打っているんですが、 ソースコードをアップロードしてわからない所を指定すれば ご解答いただけるでしょうか?
わかる人が居れば
ibisBrowserみたいなソフトキーを押して表示される メニューってどう実装すれば実現できるのでしょうか?
つ Graphics#drawImage
740 :
736 :2007/02/19(月) 00:47:50
http://read.kir.jp/file/read67342.zip ↑がソースです。
EnemyBoxを10個作ってSetting関数で初期化し、Move関数で動かしているんですが、
見た目では一つしか動いていないか、全て同じ所に描画されている状態に
なってしまいます。
コードが見苦しいかと思われますが、間違いを指摘していただけないでしょうか。
お願いします。
Doja関係無くね? つーか、初期化部分でどんな値が入ってるのか トレースするところから始めれ(´・ω・`)
>>739 thx 調べてみます
iアプリって1クラスに纏めるのが作法なの?
Javaで業務アプリを開発する仕事をしてるんだけど、
すごく違和感がある。
743 :
736 :2007/02/19(月) 01:19:28
確かにDoja関係ないです今のところ; 別のJAVA初心者スレから誘導されてきたんですが、やっぱり向こうのほうが いいですかね・・。 今、Randomの使い方が間違ってるのかな〜と思って、MainCanvasで作ってるRandomを SettingやMove関数の引数にしてそれを使うようにしてみたら10個全部出ました。 ですが、こんなの悪いやり方ですよね? どうしたものか・・。中身見てみたら値が入ってることは入っていたんですが、 何故一つしかいえないのかはいまだ判りません。
>>743 Randomにシードを与えないと、System.currentTimeMillis()がシードになるのが原因。
最近iアプリを作り始めたんですが、Javaの知識がないのでネットの情報だけだと詰まってしまって・・・。 で、Javaのある程度の基礎(iアプリを作るうえで必須となるレベルです)を 網羅した初心者向けのiアプリ プログラミング書籍でお勧めのってありますか? 逆に「コレは止めとけ!」ってやつも教えてもらえるとありがたいです。
「iアプリ ソース」でググれ。 本買うよりは有益な情報が得られると思う。 紙媒体じゃなけりゃ気持ち悪いっていう人は、んぱか氏の本とかいいんじゃね?
>>745 先にJavaを覚えるべき。いきなりDoJaをやっても無理。
おまいら趣味でやってるのか?業務でやってるのか?
自分は趣味かな 仕事だったらこんなとこで質問できないし 業務でやってみたい気もするけどね 100Kに収まるプログラムなら自分一人で全部作れるレベルだし趣味の延長で出来そう
業務でやってみたいけど3DCG難しすぎて死ねる
>>746 情報ありがとうございます。
ネット情報もんぱか氏の本も、多少Javaを覚えているのを前提としたものが多いみたいですね。
現実を知りましたorz
>>747 んー。
やっぱりいきなりはハードルが高いのですね。
総括すると、先ずはJavaとのことなので『やさしいJava』と
>>746 が紹介してくれた『iアプリゲーム開発テキストブック』を買うことにしました。
752 :
736 :2007/02/19(月) 23:58:53
>>744 それでした。
Cでsrandにtime(0)ってやるみたいなもんだったんですね。
ありがとうございました。
>>742 クラスをとにかくあまり作らないのは昔の名残。
503から搭載されたiアプリだが当時のスペックで
クラスを多様するとすぐ容量オーバーになってしまうから。
メイン10KBしかなかったしね。
100KB以降対応ならクラスをどんどん使っていいと思うけど 30KB対応の場合、クラスを多くは使えないと思う。
仕様による。
いや、au移植を考えた場合あまりクラス使えない
何でもかんでもクラス化すると、コードをは見やすいけど、容量はでかくなるな。 総じて、バランスが大切ってことで。
903iTVとかの、横向きになる画面でIアプリって動かせる? あれってTVだけ?
F903i?は描画域を指定できる 240*320と320*240
どなたか教えてください。 上or下ボタン長押しでスクロールし続けたい場合、 どのように実装すれば良いのでしょうか? Canvas#processEventではハンドリングできないようなので・・・。
キーの押下状態を調べるには Canvas#getKeypadState() 説明と使い方はAPIリファレンスをよく読んでみて。
>>761 >Canvas#processEventではハンドリングできないようなので・・・。
もしかしてPanelのお話?
PanelだとしたらgetKeypadState()使っても不可能だよ。
Canvas使ってるんならprocessEventだけでも十分実装できる。
カメラ撮影でセルフタイマーで撮影ができるiアプリは可能ですかね? 機種にその機能がなければ無理なんでしょうかね?
>>761 長押しの判定上に二つ出てるけどどっちかで出来る。
ただ判りにくいだろうから簡潔にポイント書くと
762の手法はメインとなるループの先頭辺りにgetKeypadState()を
使用して入力情報を取得するパターン。ただこの手法では
連打された時など押されてる時間が非常に短い場合の
ボタン入力が取得できない場合があるので注意。
そういう入力を逃さないようにprocessEventで取得できる
情報と併用して使用するとよさげ。
764の手法は自信がないがprocessEventでKEY_PRESSED_EVENTを
受け取った時にフラグをon。KEY_RELEASED_EVENTを
受け取った時にフラグをoffしてそのフラグの状態で
長押しされているかどうかのチェックをする手法だと思う。
ただし、レジューム割り込み発生などでボタンが離されても
KEY_RELEASED_EVENTが発生していない事もあるのでその辺りの
管理はしっかりしないとだめ。
767 :
761 :2007/02/22(木) 00:14:23
>>764 書いている通りCanvasを使ってる
>>766 詳しくthx
後者は理解できたんだけど、前者が自分のソースに
どう加えていいのかわからない
というかメインとなるループがないんだけど、これって
実装の仕方自体おかしい?一応ちゃんと動いてるんだけど
>>765 不可。
>>767 自分で手続き型プログラム書いてるのが問題なんでしょ。
メインループが無くて必要なら、作れば良いだけ。
わかったら巣に帰れ
>>767 メインループがないというのがおかしいかどうかは
作成するアプリ次第だからなんとも言えない。
正常に動いているなら問題ないという考えもあるし。
で、メインループがないという事は小さなループで
構成されてるかな?もしそうだとしたら長押し判定する場所が
あるループ内にgetKeypadState()にて取得すれば良い。
複数箇所ある場合はその分だけ同様の処理が必要となる。
アプリ内容次第だが小さなループで構成されたプログラムは
共通した処理を導入する時に面倒になったり容量食ったりする。
例えばフレームレート制御やキー入力やサウンド制御など。
小さなループが増えれば増えるほど、
追加する機能が増えれば増えるほど体感するかと。
iアプリでUart通信のやり方分かる方いませんか? Docomoの資料を見ながら試しているのですが、うまく通信できず困ってます どなたか助けて・・・orz
Eclipseでアプリ作ってて、Subversionを導入してみたんだけど resディレクトリのSubversionのメタ情報(.svn)までがjarにパッケージされてしまいます>< リソースをSubversion管理外にするのは片手落ちだし、 いちいち切断してビルドしなおすのも手間だし、なんかいい方法ないですかね。
resフォルダにバッチファイルとかでデータ管理フォルダからコピー
そうゆうスクリプト書けばいいだけちゃうん
納品する前だけ.svn削除するで良いような。
903でSDカードにデータをセーブするとき、暗号化かけるのがうまくいかないんです。 FileAttribute[] fab; EncryptionAttribute eab = new EncryptionAttribute(); eab.setEncryption(true); fab = new FileAttribute[1]; fab[0] = eab; としておいて、ファイルを作るときに file = folder.createFile(name, fab); っていう感じでファイルを作るプログラムなんですが、なぜかN903では 暗号化がかからないんです。P903ではできたんですけど、何ででしょ(´・ω・`) folder.isFileAttributeSupported(EncryptionAttribute.class)をしてもtrueが 帰ってきているんですよね。
778 :
761 :2007/02/24(土) 06:22:00
>>769 アドバイスどおり実装したら長押しキーに対応することができました
ありがとうございました
ただ1つだけ悩んでいることがあります
実はメニュー画面を作っていて、項目のフォーカスを長押しで上下に移動させる
ようにしたのですが、画面からメニューがはみ出すときにはフォーカスに合わせて
画面スクロールするようにしています
そのとき、Thread.sleepの値を小さくするとフォーカスが移動するのですが、
画面のスクロールがついていけなくなってしまいます
フォーカスと完全に同期させるために注意することはありますでしょうか
インターネットアクセス時にヘッダやCookieいじることってできませんか?
携帯にCookieはないっす
>>780 ヘッダの一部はできるんですか?
やりたいのは証券会社の株価情報ページがみたくて、
ログインの手間を省こうと思っているんですが・・・
そもそもそんなのは作れないだろう…
setRequestProperty public void setRequestProperty(String key, String value) throws java.io.IOException ヘッダのプロパティ値を設定します。 HTTPのリクエストメッセージのヘッダを設定します。 設定できるプロパティ値は、"Content-Type"と"If-Modified-Since"の いずれかです。 値が無い場合や許されないプロパティが指定された場合、設定が無視されます。 connect メソッドを呼び出した後にこのメソッドを呼び出した場合は RuntimeException またはそのサブクラスの例外が発生します。
>>778 フォーカスの位置から画面の描画位置を計算するのはどう?
文字が多いならテキストもオブジェクトにして位置を定義するとか… 追記 スクロールするときの条件をみてフォーカスを移動・画面をスクロールさせる処理をするかどうか決定する。 フォーカスを移動する条件(iモードのスクロールを参考 下のみ書いています) フォーカスの移動は上下のみです。 X軸上に同じ二つ以上のオブジェクトがある場合は右(左)にフォーカスを移動させる 以下条件 フォーカスについて 下に移動させるボタンが長押しされた。 フォーカスを下(左)のオブジェクトに設定する。 フォーカスが画面外に移動してしまう場合は、フォーカスがどこにもない状態にする。 スクロールによって画面内にボタンが入ってきた場合、見える範囲の一番下で右よりのボタンにフォーカスを移動させる。 スクロールについて 画面外にフォーカスが移動してフォーカスがどこにもない状態になった場合、 一定のピクセル、下にスクロールされる。 画面内にフォーカスが存在している場合はスクロールしない こんなのはどうですか?
787 :
761 :2007/02/26(月) 03:01:34
ググッても関連情報を見つけられなかったのですが、バイブ制御ってできるんですか? Vアプリだとできるようですが。。。
調べる=ググる じゃないだろ
バイブレーションは実質的に全機種対応
バイブの使用は注意すべきかな。 機種によって動作結果がまちまち。 ある機種では着信のバイブ設定を引き継いで振動するものや アプリ上以外の場所で設定をon・offする必要があったり 長時間振動は総ての機種でできないが、長さもまちまちだったり。 家庭用ゲーム機みたいな自在な振動はほぼ無理。
携帯のCPUって、結構高性能ですな。
iアプリに実装できる高速な塗りつぶしのアルゴリズムでいい物ないですか?
>798 速さを求めるならGraphics#fillPolygon()しかないと思う。 なんとしてでも塗りたい領域の頂点座標を求めてこれを使う。
800 :
デフォルトの名無しさん :2007/02/28(水) 06:54:36
i-motion(だっけ)の再生は130kbくらいまでの大きさのものしかできないという話を聞いたのですが これはどうにもならないものなんでしょうか・・・・
Image.createImage()は端末がサポートするイメージサイズを超えてた場合例外を投げる・・・とありますが 具体的に分かるサイトなどありますでしょうか? iアプリベンチの方にはありませんでした。 Doja5.0以降で600*400程度の画像を作成したいのですが・・・。
getSourceURL() が使えないんですけど何故か分かる方いますか? サブクラスだと使えないんですか?
803 :
798 :2007/02/28(水) 11:10:33
>>799 ありがとうございますm(__)m
>>800 動画の再生能力には、機種によってかなりの差があるみたいです。
SH902iでは、1500KB位再生できる様です
詳しくは、W2Chのまとめで…
>>801 たぶん、一般の公式サイトでは、端末ごとのcreateImageで
作成できるオフスクリーンのサイズは乗っていないから
直接DoCoMoにメール投げて聞くしかないと思われる。
>>802 IApplication.getCurrentApp().getSourceURL()
で使用できる。
>>801 そういうのはプログラム内で一度作ってみて
成否判定するのが一番手っ取り早いかと。
仮にDocomoが答えてくれたとして、
新機種が出るたびに問い合わせるわけにもいかんでしょ。
createImageの最大サイズは機種によってまちまち。 だが多数の機種で動作を前提につくるアプリであれば 描画画面サイズ=最大サイズだと思って作れば良い。 実際画面サイズ以上は作れない機種も存在してるので ミニマムスペックとしてそれ基準で作ればとりあえず問題はない。 どうしても画面サイズ以上のでかさが 必要なら複数に分割するとかで対応するとか。
スクラッチパッドから複数の画像ファイルを取得するには pos=の指定位置を画像の数だけ設定していくしかないのですか?
>>807 基本はそう。画像分の先頭アドレスを指定していく。
DoJa-3.0からはJarInflaterを利用してファイル名でアクセス出来なくもない。
809 :
デフォルトの名無しさん :2007/03/01(木) 17:31:44
>>808 その先頭アドレスを自動に取得できる命令などはないのですか?
例えば、use()で作った画像ファイルのサイズを取得できれば
posにそのサイズを足せば次の画像ファイルの先頭アドレスになりますよね?
>>809 自動でやる命令はない。
画像サイズを取得する方法があれば確かにその通りだが
やる方法を知らないし、出来たとして連番でしか読めなくなる。
ただ画像を読む際は最近の機種ではlengthオプションを指定したほうが
安定して動作するのでファイルサイズを持っておくほうが良い。
連番でファイルの先頭をテーブルで保持しておいて次のファイルの先頭との
差がファイルサイズなんでそれを指定して読み込むように俺はしてる。
>>810 なるほど
画像サイズ+画像データー+画像サイズ+画像データー・・・・・・
という形でスクラッチパッドに保存してみます
JarInflaterはいまいち使い方が分かりません(詳しく説明してるサイトもなさそう)
Image#createImage(String)使う方法だと 毎回SPから読みに行くからすっごく遅いよ。 DoJa3.0以降なら一度SPからbyte配列に一気読みして、 それをバラして Image#createImage(byte[]) 使うのがオヌヌメ
『 Secondary Proglam 』 構想案 簡略に述べると特定の環境下でサポートされていない言語又は記述等をカバーする為の二次プログラム。 例えばDoCoMo FOMA90x系でCやXLM、HSP、はてまたPerlまでも走らせ実行動作させる事を目的としたもの。 各言語毎に専用アプリケーションで枠組みを作り、外部メモリーから実行プログラムを読み込み動作させる。 言わばゲームROMを処理するゲームエミュレーターのプログラム言語処理版。 理論上、当たり前だが動作環境の性能を超えない限りは使用言語そのままの能力を使用する事が出来る。 動作プログラムは外部メモリーを介して読み込む為、従来の容量制限に捕われない自由な記述を可能にする(処理速度は別)。 外部から読み込むプログラムはゲームエミュレーターであればイメージデータに偽装するのが一般的であったがプログラムデータそのものを読み込ませる事も可能。 したがってプログラムデータを外部メモリーに書き込みをして専用アプリケーションで読み込み動作させるのが最適だろう。 こんな妄想をした(´・ω・)スマン
志村ー、r、r
妄想だから l なんじゃね?
>>813 要は携帯Javaでインタプリタ作ろう、ってことでしょ
オーバーヘッドだらけで言語としては使い物にならんだろうね
アドベンチャーゲームのシナリオスクリプトエンジンに
今では容量無制限のシナリオが乗せられますよ
というのと同じことだよ
iBASICがあるやん
n_textbox = new TextBox("", 8, 1, TextBox.KANA); とやるとコンパイルは通るのですが、実行時に"Invalid textbox mode..."とエラーが出て落ちてしまいます。 ダンプすると、TextBox.KANAにはちゃんと2が入っており落ちるはずがないのですが・・・ TextBox.DISPLAY_ANYだと落ちません。 公式のiαppliTool for Doja-5.0を使用しています。
リファレンス嫁('A`) 公式に置いてあるし無料だ。(通信費除く)
>>818 そこは表示モードを指定
入力モードを指定するときはsetInputMode()で別途やる
822 :
818 :2007/03/03(土) 00:34:43
>>820 ありがとうございます。
最近imeOn()ばかり使ってたので文法がごっちゃになってました。
OpenGL ESは勝手アプリでは使えない場合があるみたいなのですが、 メガアプリやSDバインディングも似たような勝手アプリの制約ってありますか? 今のところ勝手アプリの制限は無さそうなので大丈夫なのかなぁと思っているのですが。
ソース
3DライブラリDLLを用意していないから
827 :
824 :2007/03/03(土) 21:29:50
>>826 Doja4.1には、標準でmicro3d_d4.dllが積んであり、
念のため、micro3d_v3_32.dllと、micro3d_v2_32.dllも入れてビルドを通してみましたがダメでした。
他に何か足りないものがあるのでしょうか?
828 :
デフォルトの名無しさん :2007/03/03(土) 23:07:07
DoJa4.0以降なら浮動小数点は使えるよ。
DoJa4.0って言うかCLDC1.1な、sin, cosとかも追加されてる
でもatan2とかないんだよな
あ
>>824 には関係ないか
>>827 それじゃDLLを入れる場所を間違えてるんじゃないかと
または他のバージョンのと競合してるとか
理由は826と同じ。俺も同じことおきた
832 :
デフォルトの名無しさん :2007/03/04(日) 15:50:12
どなたかオナ禁用のアプリつくってもらえませんか? メイン画面表示もできて、オナ禁の日数と今の階級が書かれてる感じで 知ってる人はわかると思いますが、ある程度たてば昇給できればより良いです お願いします!!!!!
833 :
デフォルトの名無しさん :2007/03/04(日) 15:50:42
昇格です すいません
>>832 スレ違いだが、暇になった時に誰も作って無かったら作るかもしれんw
オナ禁スレか・・何もかも皆懐かしい('A`)y-~~
携帯に指のニオイセンサをつけないとな
eclipse3.2.1(日本語化済み)、DOJA5.0で、 Dojaプラグインを何度入れてもeclipseに適応されてません・・・。(設定の所にDOJAが出てこない) 参照からフォルダ指定してるので、フォルダは間違えてないだろうし・・・。 原因サッパリでもう3時間悩みっぱなしです。 OSが98だからかな。eclipse終了するときVisual C..って変なエラー出るし。 XPのPCに入れたときは、特に詰まることなくインストールできたんですけど・・。 誰か助けて下さい。orz
とりあえず、公式のツールダウンロードのシステム要件には Microsoft Windows 2000/XP以外での動作確認はしておりません。 って書いてある。 後は知らん。
>>812 たしかNの古い機種に、Byte配列からのイメージ生成はメモリーを過剰に食う問題があって
プロは仕方なくcreateImage(String)を使ってる。
FOMA900以降専用とかならByte配列に読んでしまうのもありだけど、そこまでくるとStringで読んでも大して遅くない。
ジレンマ。
839 :
838 :2007/03/04(日) 21:39:37
つられて(String)とか書いたけど、なんかちげえ。 (Stream)じゃないか?
つうかそもそもImage#createImage(byte[])なんか無いだろう。 MediaManager#getImage(byte[])でしょ。
841 :
デフォルトの名無しさん :2007/03/04(日) 23:48:03
位置情報を、位置履歴を使わないで、その時刻で測定した位置情報を サーバで取得しようとしています。 Aタグ、FORMタグでlcs属性を指定して位置情報は取得することができます が、測定時刻が取得できません。 また、位置履歴には測定時刻が表示されていますが、上記のAタグ、FORM タグで取得すると測定時刻が取得できないので、いま測定したのか、位置 履歴なのか判別がつきません。 測定時刻を含めて、位置情報の取得方法をご存知の方、お教えください。 iアプリでの位置情報取得なら、測定時刻は取得できるようですが、 トラステッドiアプリを使うようだから、一般のiアプリではムリ なんでしょうね。
842 :
デフォルトの名無しさん :2007/03/05(月) 09:06:00
ネットで後悔してるアプリのjar、jamファイルとかから そのソースを見ることって出来ますか?
そのアプリのライセンスを読めばできるかできないかはわかるのでは。
>>842 自分でアプリ実際に作成して出来上がったjarとjamから
ソース読めるんだったら出来るんじゃね?
自分でやってみなよ。
あと公式とかなら大抵アクセス制限でPCに
ダウンできないようにしてあると思うけどな。
ソースを見ることができないようにするにはどうすればいいんですかね?
>>845 1 作らない
2 公開しない
3 ダウンロードさせない
4 データの読み込みの制約がある環境を作る
5 可能な限り難読化を施す
6 落とした奴がソースを見ないか監視する
>>844 自分で作ったファイルからもソース読めません。
まあ初めて3日目なんですが。
というか、携帯が503だからdojaも1.0ですが
最近のだったら出来る?
jedとか使ってみた?
jadだ。
>>848 dojaのバージョンが変わろうとも出来上がるものは同じだ。
1.0で読めないなら読めないだろう。
何を恐れているのかまったく判らんが普通気にする事でもない。
503で作るとは中々気合があるとは思うが
>>851 >>845 は私ではありません。
単に、初心者が上達するには、
自分が作ろうとしてるようなもののソースを見れれば
一番とっつきやすいかなと思ったもので。
>>850 jadなんてものがあるんですね。
出来るかやってみます。
854 :
デフォルトの名無しさん :2007/03/05(月) 17:47:15
BINOMDIST関数とかって、 最初からクラスない? 自分で色々と計算してかなくちゃダメ?
>>852 リバースエンジニアするぐらいならネットで入門サイト探せばいいじゃまいか。
857 :
デフォルトの名無しさん :2007/03/05(月) 21:26:23
>>841 ストラテッドIアプリとオプションAPIを混同してました。
オプションAPIで位置情報を取得すると測位時刻も取得できるようです。
良く調べないで、申し訳ありませんでした。
あどべんちゃあゲームとかはソース読まれると嫌なので 読まれないようにしたいんです そんなに逆コンパイラって簡単なんですか?
デコンパイルしない限りソースは読まれないんじゃね?
おっとすまん、逆コンパイルって書いてあったな 一般ユーザーはそんなことできないから気にしなくてもいいと思うけど
逆コンパイルされないようにするのはやっぱ 携帯からじゃないと落とせないようにするのがいいのかなぁ 具体的にはどうすんだろ。jarのかわりにcgiのURLにして HTTP_USER_AGENTで判断する?
つーかなんでそんなにソース見られたくないの
>>861 USER_AGENTは偽装できるからIPみたほうがいいんじゃね
iアプリってSDカードに書き込まれなかったっけ? もし書き込まれるならお手上げだね
今のところは書き込まれないはず
docomoと契約して端末やアプリの業務開発している環境だったら 多分jarを端末内からSDやPCにコピーするのできると思う ↑は一般人には無理なので気にしないほうがいい
>>858 そんな心配してるくらいなら少しは勉強しろカス
できてもそこまでしてないよう調べようとは思わんな 読むの面倒だし
俺普通に逆コンパイルしてソース読んでる
>>853 俺はすげー向いてると思うぞ
その考え。
iアプリはいい本も少ないし、ソース見るのが一番ってのはいい考えだと思う。
根拠を述べよ
俺もソース見て覚えるのはいいと思うけどね。 本を読んだり、基本的なソフトウェアのこと勉強するのも大事だけど、 やっぱり現場のソースコードにはいろいろな苦労が詰まってる。
名前むちゃくちゃになるから読むのめんどい 糞ソースを読まされる気分。
他人のソースを見て勉強するのは悪い事じゃないけど
逆コンパイルして読めるだけの実力があればだと思うが。
大体何故そのようにしているのか?を知らない事には工夫の
意味が判らないだろう。機種依存対策とか結構あるわけで。
>>858 アドベンチャーのプログラムなんてスクリプト再生プログラムだろう。
読まれたところで何にもならん。読まれるのがホントに嫌なら
スクリプト部分の方を工夫して難解にすればいいだろう。
>>864 一部の機種や903以降の機種ではダウンした本体+スクラッチの
データを丸々SDに移動できる。(コピーにあらず)
ただSD上のデータは特殊な形式に暗号化されて圧縮されてるので
その暗号を解かない限りソースを弄ったりすることは不可能。
暗号解読は無理とは言わないがそんじょそこらの人には解読できない。
出来るようなら公式系サイトで大問題になるよ。
とりあえず自分の携帯903なんで自分のアプリ試してみたが
暗号化されててPC上で解析されそうな文字列なんかも見られなかった。
安心して良いかと。ついでにいえばSDに落としたアプリを
FOMAカードが違う同じ機種に入れても起動出来ないらしい。
なんでわざわざそんなことしようとしてんの?
多分オレがjadを書いてしまったから
882 :
879 :2007/03/07(水) 00:02:36
>>832 ichi78371.zip
まだ見てるかどうかわからんがオナ禁タイマーっぽいの作った('A`)ノ
逆コンパイルでもなんでもするがいいさ。
解凍パスはkin
落とす奴は最低5日はオナ禁な。
しなかったら、死ぬ間際にベッドを囲む家族の顔を見ながら
「そういえばあの時オナニーしたな」と思い出すこと。
孤独死の場合は可愛そうすぎるので免除します。
あと、実機持ってないからエミュでしか動かしてない(´・ω・`)
ロダ探すのめんどいからどうでもいい
int a=FFFFFF; とかやるとエラーが出るんですけど。 16進数をint変数に入れるにはどうすればいいのでしょうか? もしくは16進数を10進数に直す方法はないのでしょうか?
886 :
885 :2007/03/07(水) 11:11:40
あと int a=#FFFFFF; とやってもエラーが出ます。 わけわかりません。
>>885 iアプリまったく関係ないじゃん・・・・。
とりあえず答えだけっつうか基本中の基本だろう。
int a = 0xFFFFFF;
>>886 javaの最低限の勉強をしろ。
検索すればいくらでも出てくる。
890 :
885 :2007/03/07(水) 11:34:47
ありがとうございました。 しかしまた疑問ができました。カラーコードです。 赤のカラーコードはFF0000なのに、 g.setColor(0xFF0000); とすると、水色になってしまいます。 g.setColor(0x0000FF); と逆さまにしたら赤色になりました。 なんなんですかこれは?!
893 :
885 :2007/03/07(水) 12:00:52
>>891 それ使うとプログラムが長くなるんですよね。
仕方ないので理不尽ですが逆さまカラーコードで我慢します。
(これってドコモのミスですよね)
ありがとうございました。
これってドコモのミスですよね これってドコモのミスですよね これってドコモのミスですよね
久しぶりにつまらない釣りを見た。
疑問です。どなた教えてください。 一度スクラッチパッド領域に記憶した画像をサーバに転送する事は可能でしょうか?
>>893 一応説明しとくとsetColorの引数として使用する数値はカラー番号
であって0xFFFFFFの範囲0〜16777215の色要素を指定するのではない。
getColorOfRGBは指定した色要素をその使用してる携帯の
カラー番号を探し出してくれる関数だと思えばいい。
つまりg.getColorOfRGB(255,255,255)の戻り値と
0xFFFFFFが同じではない可能性がある。そのため色の指定は
getColorOfRGBかgetColorOfNameを通して機種用の数値を取り出す必要がある。
使用例としてはg.setColor(g.getColorOfRGB(255,255,255));
何故こうなってるのかは憶測でしかないが
昔の機種は使える色数が限定されていて機種依存の差を
吸収する仕組みが必要だったんだと思われる。
>>893 ついでにカラーコードが逆になってるわけではないので
そのまま使えば機種事ででる色が変わるという事態になる。
つか疑問がでたら自分で調べもしないで他人のせいにして完結するな。
ネットで検索すればもっと詳しく説明してるのを見つけるのも容易いだろう。
質問する時は自分で出来る範囲で調べてから質問するのが礼儀だ。
900 :
885 :2007/03/07(水) 12:27:46
なるほど分かりました。 礼儀を欠いたのでこれから自殺することにします。 死ねという意見も多いことですし。 今手首を切りました。パソコンが血まみれです。 気が遠くなって きま し た 。 さ ょ tょ
みんなオナ禁で気が勃ってるんだな。
>>897 可能か不可能かっていえば可能。
画像データそのものを画像として扱わず単純にデータとして
CGIに送り続けてサーバー上で画像として保存すればいい。
904 :
891 :2007/03/07(水) 14:47:04
>>900 全然面白くない。
>>898 さんも書いてるけど、
g.setColor(0x0000FF)
って書いたときに、赤くなる機種もあるし青くなる機種もあるだろうよ。
極端な話、0xFFFFFFって書いて、白くなる機種もあるし黒くなる機種もあっても文句は言えない。
iアプリの作り方的なサイトや本とか一通り見たんですが、 環境の設定、helloworldとかの後くらいに急激に内容が難しくなりすぎなんですが ほんとにあれらって初心者向けなんですかねぇ。 あそこに壁があって上れない。 初心者でも簡単にゲームが作れる本・・・みたいのって全然簡単じゃないし。 って俺みたいなやつはもう諦めた方がいいの? 本当にサル向けのページとか本とかないですか?
少なくとも俺は知らない(・ω・)
>>905 まずはふつーのJavaで勉強するがいいよ。
iアプリの勉強とか思うからわけわからなくなる。
とりあえず、Java SEでappletでも作ってみたら?
>>907 javaは知らなくてもiアプリは出来る!
iアプリはJAVAの中でも限られたものしか使えないから
覚えるものが少なくて済む!
みたいな甘い言葉にのせられましたが、
やっぱりJAVAからはじめた方がいいですか。
頑張ってみます。
>>905 それすげ〜わかるなぁw俺もそうだったし。
確かにiアプリ関係の本はそんなのが多い。
なぜならJAVAを習得している事が大前提だから。
ま、経験上の話でしかないがJAVAを極めなくても良い。
というのもJAVAで学んだことの半分以上は
制約によって出来なくなってるからw
まぁ一気に目標までいけると思わずくだらないプログラムでも
何十個も工夫しつつ作ることをお勧めする。他人のソースを
見るもの大事だが丸写しは絶対に避けるべし。出来たとおもった頃には
機種依存の壁が待ってる事に気付くが・・・最近の機種はまだ安定してるか。
JAVAは基礎だけで良いからあとは根性だw
>>909 ありがとう。
とりあえずjavaの基礎を叩き込んできます。
Javaから入ろうとすると、オブジェクト指向とは何かとか、 結局単純に動けば良いって範囲なら使わなくていいことを 延々と覚える結果になる気はする。 んで、作ろうと思ってクラスの設計であぼんw
クラスの設計か。 とりあえず最初に見たソースがクラス2つ持ってて 「何で一つのソースにまとめねーんだめどくせー」でつまづいた。
自分のアプリを人に使ってもらってバグ報告を受けたんだが、 もしかして、一部の機種では Time.start() を呼ぶと、 イベントが帰ってくるまでタスク切り替え不能になるのか?
Timer.start()なんて怖くて使えたもんじゃねーぞ
916 :
デフォルトの名無しさん :2007/03/07(水) 18:32:48
Dojaのサンプルのテトリスのソース見ると 鬼のようにオブジェクトしてるよなあ
# オブジェクトしてる 新表現kt
919 :
907 :2007/03/07(水) 19:39:19
>>909-911 うーん、もう少し正確に言うと、
Java SEで画面描画して、キーイベント処理するような
プログラムを数個書いてみればいいんじゃない、ってことでした。
ただ、OOPのことを知っても無駄だというのは同意できないなあ。
継承しらないとCanvas使えないし、リスナの概念がわからないと
イベント処理もできないし。
最低限必要な部分はあると思われ。
>>913 タスク切り替えって、他のアプリにタスクを切り替えるってこと?
タスク切り替えは可能だけど、
iアプリが裏に回った時点でタイマーは停止して再開しないね。
だからresume()メソッドで明示的に再開する必要がある。
>>919 ゲームに限って言えば、BASIC的なとりあえず書いたコードが
動作になってる所がわかる方が教科書読むより挫折しないと思うんだな。
その内に別のことするときに、調べる必要ができたら調べれば。
その辺でステップアップできるかは運がからむけどw
ゲー専とかもサンプルアプリいじって別の作るらしいやん。
前に学生が作ったのサスペンドリジュームさせたら簡単に落ちたぞw
922 :
885 :2007/03/08(木) 06:43:20
>shine 言っていいことと悪いことがあると思います。 私は禿げていませんよ。少しおでこが広いですが。 失礼な人ですね。
いきなり死ねって、どういう事ですか? 君には社会の常識がないのですか? 普通は、『あのう、すいませんけれども死んでくれませんか?』とか 『あなたはには、死ぬという選択肢もありますよ』とか言うものですよ。 あなたみたいに最初から喧嘩腰だと、 言われた方は 『じゃぁ死んでみようかな』とかいう気持ちがなくなるものです。 まずは、親切丁寧に人に死んでと頼むべきだと思いますよ。 そこから、人の輪と協調が生まれ、『よーし死んでみるか』とか という気持ちが生まれるわけで死ね。
>>923 しつこいので釣られてあげますね
英和辞典で「shine」を調べてごらん
満足したらとっとと巣にお戻り下さい
とっとと死ね
全角空白を半角にして import com.nttdocomo.device.*; を追加するとコンパイルできる
929 :
913 :2007/03/08(木) 19:49:26
>>914 >>915 >>920 なんつーか、タイマーが再開しないとか言うよりも前に、切替ボタンが効かないらしい。
自分の端末だと、タスク切り替えも効くし、レジューム時にタイマーも再開する。
で、これがうまくいかない機種があるのかなぁと思ってみた。
マルチキーが利かない現象は聞いたことないな ・その人が他のiアプリでも切り替えできないのかどうか ・他のアプリが大丈夫なら処理落としてって原因を探る ってアプローチかな
http://omori.cside.com/java/foma01.htm#s43 画像をサーバーに送るという、ファイルををダウンロードしたいのですが
有料のため、落とせません。
でもソースが載っているので、ためしてみたらエラーがでるのですが
どういう事でしょうか?
他の無料で落とせるものは、説明で載っているソースと見比べても違いがわからんのですが
落としたものはエラーなし、ソースのコピーだとエラーがでます。
どういう事か分かる方教えて下さい。
>929 切替ボタンがそもそも無い、に一票 >931 マルチ乙
ダメだ できない もう死にたい
934 :
913 :2007/03/09(金) 20:11:14
>>930 やっぱそれだね。
しかし、デバッグするにも該当機種が手元にないときついな。
mldファイルをループして鳴らすのは無理なんでしょうか? AUDIO_COMPLETE で play() だと一瞬間隔が開いてしまうような…
んぱか工房より ループポイントの埋め込み確認 MLDにループポイントを埋め込むことにより、プログラムの制御なしにループさせることが可能。埋め込みには専門知識が必要らしいのでわからないが、 埋め込まれているか確認するには、MLDをバイナリエディタで開き、以下の2つのバイナリデータを検索で存在することを確認すればよい(らしい)。 0xFFDD00(ループ開始位置) 0xFFDD01(ループ終了位置) …らしいけどループするサンプルMLDが見つからないから俺も調査中。誰か詳しい人いない?
tracの4バイトあとに00FFDD00を、トラックの末尾に00FFDD01を加え、2ヶ所のサイズ部を修正してみたが再生できないorz PsmPlayerでは再生できたがループはしなかった 難しい…
||||||| ( ゚Д゚)エンディアン嘘付かない
iアプリで機種に合わせて画面を拡大するには、 何を設定すればいいのでしょうか? 例えばQVGA機種とVGA機種で同じ画像をdrawImageして、 同じサイズで表示されるようにしたいです。
||||||| ( ゚Д゚)<iアプリにその機能無い
>>941 怠惰は何者にも勝る敗北です
努力しなさい、そうすれば名誉在る死に一歩近づけます
>>945 わかっている…つもり。
ビッグエンディアン・リトルエンディアンのことなら分かる。
MLDの1つ目のtrac部の、長さを示す4byteの後に00 FF DD 00を、trac部末尾に00 FF DD 01を追加した。
それからtrac部の長さを示す部分を0x8だけ増やし、最後にmeloの後のデータ全体の長さを示す部分を0x8増やした。
これで再生はできたが、ループはされなかった。
>>946 > ビッグエンディアン・リトルエンディアンのことなら分かる。
ならとりあえず 00 ff dd 00 じゃなくて 00 dd ff 00 にしてみた?
ただのプログラミングとJavaの初心者スレじゃん。。。
そして無駄口叩く無能の集団…(^ω^ フヒヒ
>>947 やってみました。しかし再生されますがループしませんでしたorz
>>950 エンディアンはそれで正しい。
で、ざっとしかMFiのフォーマット見てないけど・・・
『0xFFDD00』 じゃなくて 『0xFFDD3C』のような気がする。
それと他にループポイントが有ればID変えないとダメだろーし、
演奏位置とかEndOfTrackの邪魔してないよね?
ループ埋め込んでくれるツール使った方が早い思うけど。。。
952 :
951 :2007/03/11(日) 01:48:54
・・・ごめん、違う。
00 ff dd 00 で正しい。
んぱかの説明がNGなんだね。
で、 00 FF DD 3C でどうだろう。
あとバイナリエディタ見れば 00 FF ・・・ って多いと思うから
その辺何を意味するのか
>>937 で確認して。
あ、さき程MLDUtilというソフトを発見し、End Of Trackとやらの後ろにループ終了を置いていることが分かり、これをEnd of Trackより前に置いたら見事ループできました!(Emuでしか確認していませんが)
>>951 さんの予想がズバリ当たっていました。ループ回数を考えて3C/3Dにすべきのようですね。オプションAPIですがAudioPresenter2.LOOPを使って動的に設定する方法もありそうです(未確認)。
案外シンプルな仕組みなんですね。
ループを埋め込むツールとういうのがあるのですか?よければ教えていただけませんか?
955 :
デフォルトの名無しさん :2007/03/11(日) 13:08:52
>953 そのくらいのツール自分で簡単に作れるだろ
957 :
デフォルトの名無しさん :2007/03/11(日) 13:10:40
進み遅いから新スレは980くらいで大丈夫だろ
>>954 ミスった・・・まだ次スレは早いと思う。
ループの埋め込みに関しては、俺自身は知らない。
ただ素材屋さんに注文するとループを埋め込んでくれた事が有ったので
そういうソフトも存在するんだと思う。
ともあれお疲れ様。
今やってみたが0x00FFDD00と0x00FFDD01でもいけた。実機も。 ちなみにトラック4つ使ってるやつで、一つ目だけにループフラグ埋め込んだら4トラックともループしてた。
エミュのサウンドライブラリのDLLをいじっていたらこんな情報が入ってた C:\Documents and Settings\hideo\My Documents\Working\(ry ひでおさんが一人で作ってるのかな?
いまさらだが iMUSIAを使ってループを埋め込んだMLDを 解析したら一発だった
>>961 日本語のまま、それ自身ってこと。
つまりその作ったクラスそのもの。
964 :
デフォルトの名無しさん :2007/03/14(水) 14:38:59
テトリスって無料だと誰も作ってないけど もしかして特許かなんかあるの?
>>964 特許は知らんけど昔Dojaの公式サンプルだったからわざわざ作る気しないんじゃない
テトリスはエミュにサンプルでついてるからな みんな作る気がしないんじゃね?
967 :
デフォルトの名無しさん :2007/03/14(水) 14:59:08
>>965 ,966
レスthx
確かにサンプルソース流用でそれなりのものは簡単に作れるから
作った本人も満足できないね
まー、普通にテトリス作ろうと思ったら 著作権料だけで数千万飛びそうだけどなw
金必要だったらdocomoもつけないと思うが
だから新しいエミュについてないっしょ?
972 :
デフォルトの名無しさん :2007/03/15(木) 13:45:01
DoJa-5.0インストールしてビルドしようとすると 環境変数JDK_HOMEにJDKをインストールしたディレクトリを設定してくだい って出ます。 他のパソコンではそんなのでないで普通に出来たんですが。 環境変数設定しても変わらず出ます。 どうすればいいでしょう。 設定してくだいかよ!って突っ込む余裕もありません。
試しに JDK_HOME じゃなくて JDK_PATH にしてみ?
>>973 環境変数JDK_HOMEにJDKをインストールしたディレクトリを設定してくだい
って出ます。
設定した後リログか再起動は?
>>975 したけどだめです。
DoJa-4.0でもだめでした
環境変数の話だと、PATH のなかに、 (JDKのインストールディレクトリ)\bin を入れておくとうまくいったりするって言うか、 eclipse プラグインとか、これやらないと動かないよね。
コマンドプロンプトからjava -versionと打って、Javaが起動するか、バージョンは1.4.2以降か確認
解決しました 変数がC:\j2sdk1.4.2_13\binじゃだめで、 C:\j2sdk1.4.2_13ならうまくいきました。 なんか納得いかないけど。
JDK_"HOME"だからね
981 :
デフォルトの名無しさん :2007/03/16(金) 17:08:01
あーもう全然わかんね。 例えば テキストボックスを二つ作って、数字入れられるようにして、 計算ボタンを押すとその二つをたした答えが下に表示される、 みたいのを作るときは何使えばいいんですか? gettext? クラスが一つだけの表示だけとかの範囲までは理解できたのに 一つの中に何個かクラスが出てきたりしたらもうだめだ。
new TextBox()を2個してPanelにadd() new Button()してPanelにadd() // 計算ボタン new Label()してPanelにadd() // 結果表示用 PanelにComponentListenerを実装し、Buttonが押されたときにイベントが起きるように設定する ボタンが押されたら2個のButtonをgetText()し、それぞれInteger.parseInt()し、計算する。
ありがとー。 上3行まではできてる。 4行目もたぶんそんなんだと思ってた。 Integer.parseIntとか聞いたことなくて、更に、gettextの使い方がイマイチわからなくて悩んでたんですが、 Integer.parseIntとgettextでぐぐったら似たような計算機みたいな例が出てきました。 本当にありがとう。 煽られて終わりだと思ってたしw
あーちょっと遅かったか。暇だったからサンプル書いた。テストしてないけど参考に。 public class PanelEx implements ComponentAction { TextBox textBox1 = new TextBox("", 20, 1, TextBox.NUMBER); TextBox textBox2 = new TextBox("", 20, 1, TextBox.NUMBER); Button button1 = new Button("計算する") Label label1 = new Label(); public PanelEx() { add(textBox1); add(textBox2); add(button1); add(label1); setComponentListener(this); } public componentAction(Component source, int type, int param) { if (source == button1 && type == ComponentListener.BUTTON_PRESSED) { try { int v1 = Integer.parseInt(textBox1.getText()); int v2 = Integer.parseInt(textBox2.getText()); this.button1.setText(Integer.toString(v1 + v2)); } catch (NumberFormatException e) { this.button1.setText("計算不可"); } } } }
こういう要望にさくっと応えられる Panel は便利だなぁと思いつつも、 機種毎に描画が微妙に変わるのが困りもの。。。
>>986 乙
>>984 本当にありがとうございます。
参考にします。
1週間くらいこの辺で止まってたのが一気に行きそうです。
989 :
デフォルトの名無しさん :2007/03/18(日) 00:22:57
n乗の計算とか、階乗の計算て、どのように表示すれば良いですか?
nの二乗なら→n^2
992 :
デフォルトの名無しさん :2007/03/18(日) 01:36:16
>>991 やっぱりそうですよね?
でも10^2で8とか20^2で18とか
引き算になる?んです。
他にも10^20が30とかわけわかりません。
Pow()がどこかにあるべ というか少し語弊があって > どのように表示すれば良いですか? って聞くのは良くない 言語レベルの話なのか一般知識としてなのかが曖昧
^で表すこともあるけども Cとかでは^はビットごとのXORになるんだって 2進数 10進数 1010 = 10 0010 = 8 XORはビットが異なる時に1になるから 1 0 1 0 0 0 1 0 ↓↓↓↓ 1 0 0 0 = 8
>>994 あっ、0010 = 8はミスです
0010 = 2です
> 0010 = 2 CやJavaの話をするなら、0010は8だな
なんだか暗号みたいですが ^を使っちゃいけないことだけはわかりました。 というか、 3割バッターが100打席で ヒットを30本打つ確率と、2割バッターがヒットを30本打つ確率の比較、 みたいのを計算しようとしたんですが、 もしかして非常に難しいんでしょうか。
998 :
デフォルトの名無しさん :2007/03/18(日) 03:21:31
>>997 高校レベルの数学だと無理そうだし、難しい気がするけどね
いや、高校レベルの数学知識でなんとかなるんじゃないか 問題は0.3の100乗とかの計算だろう
double pow(double a, int b) { double r = a; for (int c = 1; c < b; c++) r *= a; return r; }
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。