【初心者歓迎】iアプリ相談室

このエントリーをはてなブックマークに追加
iアプリの制作でわからないことについて、誰かがまったりと答えてくれるスレです。
本スレは、

iモード携帯電話用Java(iアプリ) Part 5
http://pc5.2ch.net/test/read.cgi/tech/1084246226/

iアプリを作ったことがない or 作りたい人は>>2-6あたり。
● アプリ作りのための下準備(2004-07-11現在)

Java 2 Platform, Standard Edition, v 1.4.2
http://java.sun.com/j2se/1.4.2/ja/download.html
PC用のJava実行・開発環境。iアプリを作るのにも必要です。
「J2SE SDK のダウンロード」→「Accept」をチェックして「Continue」をクリック
→Windows Platformのどっちかをダウンロードしてインストール

iアプリコンテンツの作成について
http://www.nttdocomo.co.jp/p_s/imode/java/index.html
技術資料を片っ端からダウンロード。DoJa3.0は505i以降、DoJa3.5は900i以降に相当。
PDFファイルが読めなければ、AdobeのサイトからAcrobat Readerをダウンロードしてインストール。

さらに「DoJa3.5プロファイル向けiアプリ開発ツールのダウンロード」で開発ツールをダウンロード。
なお、DoJa3.5の開発ツールでも、3.5で追加された機能を使わなければ505i以前で動くアプリは作れる。
展開して DISK1/setup.exe でインストール。docsフォルダのドキュメントも読んでおくこと。

CLDC仕様書 日本語版
http://java.sun.com/products/cldc/docs/CLDC1.0_ja_docs.zip
この中の CLDCAPI.html.zip がiアプリの基本APIのドキュメント。
ドコモのAPIリファレンスと一緒に、展開して手元に置いておこう。
● はじめてのiアプリ

スタートメニューからiαppliTool for DoJa-3.5(FOMA)を実行、
「プロジェクト読込み」でtetrisを選択して「読込み」をクリック。
「ビルド」をクリックして、無事にビルドが終了したら「実行」。
うまくいけば、なんだか出来の悪いテトリスが動いてるはず。

開発ツールをデフォルトのフォルダにインストールした場合、
C:\iDKDoJa3.5\apps\tetris\bin の tetris.jam と tetris.jar がiアプリ本体。
携帯からこのアプリをダウンロードできるようにするために、次のようなHTMLファイルを書く。

nullpo.html------------------------------------------------------------------
<a ijam="#nullpo" href="nullpo.html">ぬるぽ</a>
<object declare id="nullpo" data="tetris.jam" type="application/x-jam"></object>
---------------------------------------------------------------------------
ウェブサーバの同じディレクトリに tetris.jam、tetris.jar と一緒にアップロード。
携帯から nullpo.html にアクセスしてぬるぽをガッすれば、
携帯にも出来の悪いテトリスがダウンロードされる。

● 次は何する?

C:\iDKDoJa3.5\apps\tetris\src フォルダの拡張子 java ファイルが、
出来の悪いテトリスのソースコード。眺めて楽しむも良し、改造するも良し。
ドコモの技術資料を読みながら、いろいろ遊んでみよう。

分からないことがあれば、このスレで質問すれば誰かが答えてくれるはず。(o´▽`)b
本スレのテンプレのリンク先も参照のこと。
● PC用Javaと携帯用Javaの違い

Java ┳ J2SE(Java 2 Standard Edition) ... PC用Java
    ┃
    ┗ J2ME(Java 2 Micro Edition) ━ CLDC┳ DoJaプロファイル ... iアプリ用Java
                             ┃
                             ┗ MIDP ... 他の携帯用Java

iアプリのJavaは、PCのJavaと似ていますが基本的に別物です。
iアプリで使えるAPIは、前述の CLDCAPI.html.zip のAPIリファレンスと、
ドコモのAPIリファレンスに載っているものだけになります。

● 機種依存について

iアプリの実行環境は、Sun や DoCoMo の規格に基づいて個々のメーカーが勝手に実装しているので、
機種ごとに挙動が違ったり、実行速度が大きく異なったりします。
その結果として、しばしば、ある端末で動いたアプリが他の端末で動かなかったり、
PC上で動いたアプリが実機で動かないことがあります。
(もっとも、プログラムそのものに問題があることも多いのですが)

機種ごとの差異、あるいは不具合については、本スレの「機種依存情報」を参考にして下さい。
また、携帯アプリ板に次のようなスレがあります。

アプリの動作確認はここでタノメ。
http://hobby6.2ch.net/test/read.cgi/appli/1087912411/
>>1
乙〜
>>1
Z〜GJ〜いいよ〜いいよ〜
でも>>1の「本スレは、」っておかしなことになってるよ〜
そして>>3、みのがさないよ〜

     ガッ
>>1
(*^ー゚)b グッジョブ!!
86:04/07/11 17:52
>>6
>でも>>1の「本スレは、」っておかしなことになってるよ〜

すいません、俺の勘違いです、おかしくないです・・・(;´Д`)
流してください流してください・・・
相談こなくて暇だな兄者>>10
「本スレ」が埋まるまで待つしかないな。
            ∧_∧
     ∧_∧  (´<_`  )
     ( ´_ゝ`) /   ⌒i
    /   \     | |
    /    / ̄ ̄ ̄ ̄/ |
  __(__ニつ/  FMV  / .| .|____
      \/       / (u ⊃
各機種用の振り分け方を教えてください。

自分のアタマで考えた選択肢は、
・各機種用バイナリをそれぞれ別々に用意してUAなどを見てリンクを動的に変える
・全部ひとつのバイナリに埋め込んでバイナリ内部で対応する
・上ふたつの組み合わせ

どんなプログラムなのか、にもよるとは思いますが、
プロフェッショナルな現場で活躍なさっている皆様の定石などあれば
ご紹介ください。
>>11
> 全部ひとつのバイナリに埋め込んでバイナリ内部で対応する

容量に問題のない限り、これだな。
近頃は容量もあまり厳しくないし。
機種別バイナリを作らないといけないような厳しさの場合、先に仕様削減する。
ということは504iに合わせて作っておいて
スクラッチパッドにダウンロードさせるリソースを
505用とか900用とかに振り分ける
みたいな感じなわけですよね。
>>13
ダウンロードさせるリソースは各機種ごとに分ける必要があるかも。
サンプリング音源を使ったサウンドデータを入れる場合とか。

バイナリ内で機種判別するか、jamに起動時のパラメータを書いて
(jamファイルは機種別に用意する)それを使うかするのが吉。
バイナリ振り分けるといろいろ面倒くさいからねえ。
jamファイル複数用意するのもめんどくさいからねぇ。
17デフォルトの名無しさん:04/07/12 13:26
>>16
cgiで吐けよ、ばかばかまんこ
>>17
ということをしないといけないから、めんどくさい。
CGIでADF吐いて、確実にどの機種でも落とせるようにする方法ってシラネ?

前に試したらP504iだけで落とせなくなってたことがあって
数ヶ月気づかずに放置してたので、以来怖くて普通にダウンロードさせてる。
>>19
CGIでADFはかずに、確実にDLできる静的なADFをおく
もしくは、その内容を吐き出すだけのCGI
21デフォルトの名無しさん:04/07/12 18:42
初回起動時に画像ファイル等のリソースをSPにDLするように作ってるのですが、
その直前に時間がかかるというメッセージを表示させようとしても、
何も表示されずに困ってます。
repaint()はタイミングが微妙なので、lock()/unlock()を使ってます。
また、表示させるメッセージの箇所はデバッグプリントで通っていることを確認しています。
どなたかよろしくお願いします。
>>21
> repaint()はタイミングが微妙なので、lock()/unlock()を使ってます。

わけわからん。
とりあえず、過去レス嫁。。。っていえなくなるだろうが、1のアホ。
ここらへんのすれでもよんどけ。
http://pc5.2ch.net/test/read.cgi/tech/1084246226/
http://www.spicy-dog.com/
の一番下の
スパイシードッグ ver 3.1 for 505i版 β無償ダウンロード
って言うのはXPでは動きませんか?起動してもすぐ消えるのですが・・・
>>22
何日か前に本スレで話題になってたアレかもね。
まあ意外に繁盛してていいじゃないさ。
個人もしきは名も無き零細企業が作ったアプリでも、
公式に認められれば課金アプリになれますか?
>>25
そんなことをここで聞いてもしょうがないでしょ。
DoCoMoに問い合わせるか、
課金配信サービスをやってるサイトがもしあればそちらへ問い合わせてみなさい。
2726:04/07/12 20:54
ちょっと書き方がきつかったかもしれない。
何かしらの認定に関することは、申請の手続きとかそういう流れもひっくるめて
その認定機関へ問い合わせるべきだよ、ということが言いたかった。
ドコモの課金システムを使いたいなら公式サイトにならないと駄目
でも個人じゃほぼ無理だし、法人でもサイトが乱立してる現在は簡単じゃない
公式サイトやってる会社にアプリを買い取ってもらうのが一番早いと思われ

独自の課金システムでいいなら誰の許可もいらんぞ
iメニューには載らないけどな
よくスクラッチパッドにデータをDLして書き込ませることによって
メモリの制限から回避する話題が出ているのを読むのですが
たとえば、
画像データとテキストデータをDLしてSPに書き込ませる場合
画像データ(32*32)を8データ、
キャラクター名、体力、魔力(ex:魔法使い、30,45)
など、
上記のデータを格納させるためには
書き込む領域指定は具体的にどのように
指定すればよろしいのでしょうか?
>>21
それだけでは何とも言えない。
とりあえず問題の場所のコードをコピペしてみれば。
>>21
エミュレータでの動作なのか、実機での動作なのかを書いてくれ。
実機の場合は機種もタノム。

あと、lock()/unlock()はどこで呼んでるのかも教えてくれ。
processEvent()の中なのか、Thread#run()の中なのか。
そういや、通信中に全スレッドが止まる機種なかたっけ?
うそー、まじ?
>>29
決まりは何も無いから自分の好きにすればいいぞ
逆に言うと全部自分で決めないとダメって事だ
3525:04/07/13 00:59
>>26
丁寧にありがとうございましたm(__)m
やはり厳しい審査があるのですね…

>>28
分かりやすく答えて頂いてありがとうございました。
厳しい審査も通り抜けられるプレゼン能力と、そこまでこぎつけるコネクションが必要ということですね…

ちょっと本腰入れて営業してみます。

プログラムと関係ない話題に丁寧に答えて頂きましてありがとうございました。
>>21
DL開始前にpaint呼べ
repaint端末によって動作が違うので、paintを直接呼んだほうがいい
>>29
ttp://2php.jp/iapp/scratchpad.html
あと '本スレ' Part4 の 296 あたりから参考になるかも。
見れない場合は、今ならググってキャッシュで確認できると思う。

データの格納イメージが把握しやすくするのだと
「パラメータデータ」「画像」の順に入れれば楽だと思う。
あと、画像は1枚絵にしてしまって、表示はそこから部分切り取り表示
すれば多少のデータサイズ軽減になるかも知れないデス。

的確な回答じゃないかも知れない。ごめん。
結局同程度の質問が分散しただけで、やりにくいったらない。
誰も誘導していないから当然とも言える。
いちいち振り分けるのもめんどくさいし。
>>1が責任もってふりわけるべきなんだよな。
42アッチの837:04/07/13 05:45
だーかーらー言っただろうよ
とりあえず作ってみて利用されれば残るだけの話
なーんてあまりにも無計画すぎるって気付かなかったのかなー
立てちまったもんはしょーがない
アッチももうすぐ900だし次スレのテンプレで
方向性を明確に打ち出してちゃんと区別するしかないな
コッチのスレのテンプレ作りは
大きく評価するけどね。乙!
>>42
つうか、ここが次スレでよい。
44本スレの1:04/07/13 08:40
あー、あっちの新スレ立てるときに誘導かけるよ。
認知度低いうちはこんなもんでしょう。とりあえず乙>>1
マジで、使い分けできないんだから、乱立はやめてほしい。
ことの顛末を説明しておくな。

iモード携帯電話用Java(iアプリ) Part 5
http://pc5.2ch.net/test/read.cgi/tech/1084246226/
で、スレを分けるか否かの話しが出たのが↓のあたり
http://pc5.2ch.net/test/read.cgi/tech/1084246226/812-865

でここのスレが立ったわけだが
結局使い分け出来てるんだかどうだかよくわからない状況。
ここを次スレとか言ってみても誰かがPart 6立てたらそれまでの話し。

どーすんの?

とりあえずこの話しの続きはちゃんと結論出すまで
Part 5でした方がいいと思うんだけど。
というか誰か仕切っておくれ
47デフォルトの名無しさん:04/07/13 10:17
初心者はちゃんとスレ調べて使い分けろよな。
こっちは常時ageで本スレはsage進行でどうだい。
48デフォルトの名無しさん:04/07/13 10:47
xzf
システム変えようとするとガタガタ不平言うヤツが出てくるのはいつのもことだな。
携帯アプリ板が出来たときもそうだったし。しばらく様子見てみろや。
向こうで初心者質問出たらこちらに誘導。
しばらくそれやってれば、
うまいこと棲み分けできるようになるんじゃなかろうか?
まだこっちできたばっかりなんだから、
もう少し様子を見ようよ。
っていうか、スレタイは「初心者歓迎」となってるだけのただのiアプリ相談室だし
初心者質問を受けるとしても、どこまでが初心者の質問なのか、質問者に判断できるわけないし。
どうせほとんどは1レスで解決するんだから、誘導するより、その場で答えるだろうし。
>>51
1レスで終わらないからこうなったんじゃないの?
53CONTI4XZ ◆6l8SKPa8l. :04/07/13 15:28
iアプリを有料としてリリースするときの課金代行の初期費用や継続にはどれくらい費用がかかるんでしょうか?
>>53
課金代行先に聞け。
5523:04/07/13 18:32
誰かおせーて...
>>55
やってみたらすぐ起動したよ。WinXPで。
どういうアプリなのか知らんけど。
5723:04/07/13 18:49
>>56
マジですか・・・
もう一度いろいろ試してみます。
>>23
うましか?










■スパイシードッグ ver 3.1 for 505i版 β無償ダウンロード
スパイシードッグを暫定的に505i対応したバージョンです。
現在社内テスト中のものを公開テスト向けにリリースしたものです。
このβ版に関しては無保証になります。又お使いいただく方には、
発生した障害等を弊社サポートに送っていただくという前提で
ご利用いたくようお願いしております。

■ご注意点
1) ver 3(504i版)と同じパソコンでご利用いただく場合にご注意ください。
2) DoJa3エミュレータとの組み合わせでの検証は完了しておりませんので
ご注意ください。

障害のご報告先[email protected]
5923:04/07/13 18:57
追加
本体自体が起動しません
6023:04/07/13 20:12
出来ませんでした・・・
ご指導を。
障 害 の ご 報 告 先
[email protected]
・・・このスレであまりに突き放したレスもどうかと思うが(´Д`)
>>23
とりあえず、君の今の不具合が起きている環境で、第三者が認知できるのが
「OSはXP」というだけなんですよ。homeかprofessionalかすら分からない状況。
PCのスペックとか仕様したエミュレータのバージョンとか、操作方法とか
とりあえず「何をどうしたら」今の不具合が発生したのかを説明しないと。

今のままでは >>58>>61 のような回答が来ても仕方ないよ〜。

起動方法が間違っているとかなら答えようもあるけど、その方法が伝わらない
限りは対応できない。他の人のXPで動いているという意見がある以上、
サポートに尋ねてくれ、というのも他に答えられないからですよ。
6323:04/07/13 22:39
すみませんでした。
で、うちのPCはWinXPのHomeで、FMV-BIBLO NB8/900Lというのを使っております。
スペックは良く分かりません。
エミュレータはDoJa3をインストールしています。
症状はsdb.exeファイルをクリックすると、一瞬だけタイトル?が表示されてその後は何も起こりませんでした。
ほかに必要な事があればお願いします
>>63
そのsdb.exeを、ダブルクリックじゃなくてコマンドプロンプトから実行すれば
エラーメッセージが読めるだろう。
で、障害は報告したのか?
>>63
ベータ版というのはそういうものだ。
「発生した障害等を弊社サポートに送っていただくという前提」
と書いてあるだろ?
自分の環境で動かせないなら素直に諦めな。
どうしても使いたきゃ障害を報告しな。

それとPCのスペックくらい知っとけよアホウ。
CPU何使ってようがメモリどれくらい積んでようが
XPが動いてるんならPCのスペックはあまり関係無いかもしれないが、
intelかintel以外かで動く動かないがある場合だってあり得るだろ?
なーにがFMV-BIBLO NB8/900Lだよ。
あとの情報は各自ググって調べろという意味なのか?
ふざけるな
■ご注意点
1) ver 3(504i版)と同じパソコンでご利用いただく場合にご注意ください。
2) DoJa3エミュレータとの組み合わせでの検証は完了しておりませんので
ご注意ください。

エミュレータはDoJa3をインストールしています。

釣られ(ry
結局同じヤツがレスするから、初心者歓迎しなさぶりも、そんなにかわらん。
結論
初心者はβ版のソフトを使ってはいけない
ということは、いつまでたってもβ版と名高いmonoを、初心者のオレが使える日は来ないってことですね?
monoは正式版がリリースされましたがなにか?
初心者歓迎しなさぶりというか、

ここはiアプリ製作初心者のスレであって、

PC初心者のためのスレではない。
73デフォルトの名無しさん:04/07/14 11:05
スコアとかを右詰で表示するにはどうすればいいのでしょうか?
drawNumberは使えない機種あるみたいですし・・・
Font.stringWidth(String)
を使って自分で計算するのですよ
すいません、初心なアプリプログラマです。

int 型のアスキーコードの入った変数を、
str 型に文字変換して、代入したいのですが、
キャストする命令が、どう調べても見つからず、困っています。

誰か方法か命令を知っている方、ご指導宜しくお願い致します。(T_T)
76デフォルトの名無しさん:04/07/14 13:49
>>75
すまん、誰かこの文章を日本語かJavaに翻訳してくれんか?
>>75

/****** 変な日本語失礼しました **********/
void main(){

int a = 33; // 「!」のアスキーコード 33
String s; // これに a のコードを元に「!」を代入する方法を知りたいんです

}
Byte配列からStringを生成できる。
int型をbyteにするのは簡単だ。

この二つの合体攻撃でGOだ(σ・∀・)σ

まだわからなかったら、どっちが分からないのか言ってくれ。
>>77
String[] tbl = {" ", "!", (省略) ,"_"};
String s = tbl[a-32];

これでもいいかな?
↑おかげ様で出来ました(^ー^)
ありがとうございました。

/**アスキーコードより文字列を返す**/
String STR( int cc )
{
  byte a = (byte)cc;
  byte b[] = new byte[1];
  b[0] = a;
  String str = new String(b, 0, 1);

  return str;
}
>>79

あ、それも考えてみたのですけどね(^^;
ご協力ありがとうございました。
String STR( int cc )
{
byte b[] = new byte[1];
b[0] = (byte)cc;
String str = new String(b, 0, 1);
}

失礼、修正に修正を重ねていたので、アホでした。orz
8373:04/07/14 17:27
>>74
g.drawString(""+sc, 100-Font.getDefaultFont().stringWidth(""+sc), 100);

こんな感じでしょうか?
どうもありがとうございました。
>>71
その正式版が、β版程度と名高いのだが。
8523:04/07/14 23:48
>>66
おーコワ
>>72
仕方ねーべ。まだ認知度低そうだし、このスレ。
それでもレスしてる人間は見た限り5、6人いそうだけど。
回答と呼べるものかどうかは別としてさ。

分かりやすくするわけでもなく、同じ内容をわざわざ長文にしてレスする必要ってあるのかな。
>>72
> ここはiアプリ製作初心者のスレであって、
> PC初心者のためのスレではない。

初心者、っていうのは、はじめたばかりの人のことではなくて、自分のことを初心者と思ってる人のことだからいいんだよ。
自ら初心者とはまったく思ってないし
それなりのものが作れる自信もあるんだけど
さらにその上をいくスーパー経験者でもないと
このスレで質問せざるを得ない空気なんですけど。
ぶっちゃけ職業プログラマなスレと趣味プログラマなスレ
という解釈でおk?
>>88
いや、2ch技術系板初心者と、2ch技術系板常連の区分け。
iアプリごときで「質問」しなきゃならんのは、どこからどう見ても初心者
とか言ってみるテスト

つか、なんでもいいので次の相談 щ(゚ロ゚щ) カモ-ン
SPsizeをアプリ実行中に調べる方法はありませんか?
AppParamをIApplication#getArgsで調べるように。
scratchpadへのアクセスでの例外はdocomoの
「iアプリコンテンツ開発ガイド」に明記されている例外だけ
キャッチすればいいのでしょうか?

ドキュメントに書いてある「その他の例外」がハードエラー
以外の要因で実質的に発生することはあるのでしょうか?

scratchpad関連でのwrite時の例外以外は、ぶっちゃけ端折り
たいんですよね…
サーバとデータをやり取りする際、サーバサイドには何をお使いですか>all

例えば、cgi+perlとPHPとJava(Servlet)では、速度が違ってきたり
するのでしょうか?
それとも、端末やdocomoの経由サーバでのボトルネックの方が
大きく、あまり考慮する必要は無かったりするのでしょうか?
>>90
こんなに機種依存が激しいのだから、質問でまくりだろ。

>>91
自分で表示するしかないぞ。

>>92
Exeptionで全部まとめてとっちゃえ
openをしっかりcloseしないと、再度openしたとき例外出す機種は多いので注意

>>93
全然気にならん。一番作りやすいもので組むべし。
NULLGWDOCOMOの変換用Docomo鯖が最近重すぎて困る。
Fomaのパケホーダイのせいだな。


obfuscatorなに使ってる?
今retroguard使っているが、20KBのアプリで5%くらいしか縮まらん。
性能の良いのがあったら、教えてたもれ
JavaBlender

理由:楽だから。

あと、最近はこなれてきたのか再圧縮に頼らなくても結構容量に余裕でるわ
505iで(Do-Ja3.0でコンパイル)で動いていた待ち受けアプリが
FOMA(Do-Ja3.5でコンパイル)では動きません。
調べてみるとcom.nttdocomo.lang.UnsupportedOperationException
とのことですが、FOMAになってから何かのメソッドが未サポートになった
ということでしょうか?
他にこのメッセージが出るシチュエーションがあるのかな?
教えてエロイ人
9891:04/07/15 15:24
>>94
表示…ですか。
つまり、調べる方法はないということですね。
機種ごとにJAM内のSPsizeを変えた場合(Nの409600問題対処の為等)は、
機種判別でSPsizeを知るしかないということになりますか。

有難うございました。
>>97
変な動作するFoma機種もある。Fとか。
Fomaはデバッグほとんどせずにリリースされた感が強いから、そういうとこかもな。
未サポートになったものというのは無いはず

>>98
質問意図勘違いしてレスしてたわ。
スクラッチパッドをオープンして、ストリームの長さ調べてみたら?
できるか知らんけど。
AppParamに書くのが一番楽だと思うがな。
10097:04/07/15 15:58
自己レスです。
どちらもDo-Jaの上では動きます。
FOMAの実機(P900iv)でのみ動きません。

Do-Jaで、デバッグトレースで見ると
java/lang/ClassNotFoundException: com.nttdocomo.io.X900i.resource.Protocol
というExceptionが出ているようです。
出ていますが、Do-Jaの上では動いています。
???
10197:04/07/15 15:59
>>99
なるほど。
ありがとうございます。
10297:04/07/15 16:28
さらに自己レスです。
どうやらサブディスプレイに描画させる部分が問題のようです。
サブディスプレイへの描画を削除したら動くようになりますた。
似たような現象で悩んでる人は参考にしてください。
10392:04/07/15 18:09
>>94 ありがとうございます。
キャッチするのはいいのですが、復旧処理がどうにもマンドクサイので…
ネットワークは初めから例外前提で組むのでいいのですが、scratchpadは
openや読み込み例外が起きたときの復旧フローを考えるのが、
レアケースならFATAL ERRORということで終了しちゃいたいのです。
我侭ですが(w
でも、一応Exceptionで根こそぎキャッチすることはしておいたほうが
いいようですね。ありがとうございました。
10491:04/07/15 19:16
>>99
スクラッチパッドは困ったことにInputStream#readで
EOF(-1)を返さないんです。なので、writeで例外を
キャッチするくらいしか方法がありません。

AddParamで別途パラメータを取得するというのは良いアイデアですね。
いっそのことparam.txtとか作って最初に読んじゃってもいいかも。
有難うございました。
ぬるぽスレはここですガッ?
もう30KBいっぱいいっぱい。さらに機能を追加しなければならない。もうだめぽ
そーだJavaBlenderを使おう!
…ってfor Windows 2000, XPなのね。うちは9x系なのですが
9x系でも動くJavaBlenderライクなJava圧縮ツールご存知ありませんか?
107106:04/07/15 23:20
すみませんダメモトでやったら使えました。
でも500バイト削れただけ。やらないよりはましだけど・・・
>>106
http://imodoki.sourceforge.jp/manual/shrinker.html
>有効な組み合わせを適宜選んでください。おすすめは ProGuard と jarg です。

iモード携帯電話用Java(iアプリ) Part 4
>終わったら多段でかけるのが普通かと思ってたけど違うのかな?
>JavaBlender>jarg -nobco>7zip
>JavaBlender>7zipよりは確実に縮むよ1%程度のオーダーではあるけどね

多段&7zipがいいらしいぞ
109デフォルトの名無しさん:04/07/15 23:48
age進行だった
>>80
なんでそんな面倒なことしてんの?
String str = "" + (char)cc;
でいいじゃんw
>>110
ワロタ
>>110
他には
str=new String(new char[] {(char)cc});
とか
(new Character((char)cc)).toString();
とか
(new StringBuffer(1)).append((char)cc).toString();
とか考えられるが、どれも効率面じゃ似たようなもんなんだよな。

しかし、なんで
>>80,82
はbyte[]使おうとするんだろうか。文字なんだからcharだろ…。
113112:04/07/16 01:47
あ、
String.valueOf((char)cc);
があるの忘れてた。これが一番楽だな。
>>113
"" + (char)cc
の方が、楽だし圧縮も効きそう。
文字列の連結は他でもやってるはずだから。
>>114
でも、""+(char)ccは、(new StringBuffer("")).append((char)cc).toString()のsyntax sugarだからなぁ。
べつにいいじゃん。
試してないけど、もしバイト数が減るんだったら、使わない理由はない。
●環境:XP+iαppliTool for DoJa-3.0
●開発歴:無し
●レベル:レベル1、完璧な初心者
●今までで出来たこと:Helloと表示、他数アプリ動作成功
●参考にしているもの:
このスレ、DoCoMo公式サイト、ん・ぱか工房など。
●これからやりたいこと:
一般サイトにあるiアプリ(無料アプリ)を落としてエミュ上で動かしたい
これの手順を教えてくださいm(__)m
>>103
商業作ってるが、正常に使えばスクラッチパッドが例外を出す可能性は無いとして作ってる。
もちろんcloseし忘れによる失敗はありうる(バグ)ので、きちんと例外時に
メッセージ出すようにしてるけどね。
そしてデバッグ期間でつぶす。

>>117
まずはアプリのUPの仕方を覚える。
UPの仕方を覚えれば、どうUPされてるのかわかる。
そうすればPCからのアクセスが制限されていないかぎり、JadJarがDLできる。
そうすりゃエミュで動かせるでしょ。
>>83
String s = "   " + n;
s = s.substring(s.length() - 6);
g.drawString(s, x, y);

こんな手もある。場合によってはstringWidthより少しアプリのサイズが縮む。

>>117
ページのHTMLを見て *.jam をURL直叩きでダウンロードする。
*.jam の中を見て *.jar を直叩きでダウンロードする。doja.exe のコマンドラインで実行。
外部リソース使ってると駄目だが、その辺は逆コンパイルして(以下略)

CGIとか.htaccessとかでPCからダウンロードできないようにしてある場合は無理。
120117:04/07/16 20:13
>>118-119ありがとうございます。トライしてみます。
>>116
すくなくとも圧縮前の命令数は増えるのは間違いないと思うよ。
3回のメソッド呼び出しに展開されるんだから。

あとは、「文字列の連結」が他にもあるから圧縮が効くとして、
それがメソッド1回呼び出してるだけどString.valueOf()に勝てるかということになるわけだが、
べつにメソッド名を表す文字列はコンスタントプールに1回出現するだけだし、
そこまで効果ないんではないかと。
>>121
とりあえず、「シンタックスシュガー」というのは、その手法を使うか使わないかの理由には全くならない、ということがいいたいだけなのさ。
>>122
ん?
元の文は「シンタックスシュガーだから」じゃなくて「3つのメソッド呼出しに展開されるから」
という意味だと思うが。
> CGIとか.htaccessとかでPCからダウンロードできないようにしてある
これの具体的な方法は
http://www.nttdocomo.co.jp/p_s/imode/ip/index.html
http://www.nttdocomo.co.jp/p_s/imode/spec/useragent.html
↑に掲載されている情報に該当しないリクエストをはじくだけで大丈夫でしょうか?
たとえばユーザーエージェントなんかはブラウザの設定で何とでもなりますよね?
IPアドレスに関してもそういうツールを用いられたらお手上げなのでしょうか?
携帯電話以外からのアクセスを完璧にシャットアウトする方法があれば
何卒ご教授ください。
>>124
IPアドレスは偽れないような希ガス
>>123
その元々をみるがよろしい。
>>124
IPアドレスは偽れるが、偽ったところで自分のIPにパケットが戻ってこれないので意味無しかと。
>>127
なるほどすごい納得
>>126
もともとって?
>>129
115からの流れ。
131123:04/07/18 12:21
>>130
うーん?
じゃあ、あなたの「元々」って言ってるのが、漏れが「元の文」と言っているものだ。
「シンタックスシュガー」かどうかによって、
その手法をつかうか使わないか決めるなんてナンセンスだと思うし、
その意味で122さんの言うことはその通り。
でも、115は、単に""+(char)ccは結構多くの命令に展開されるだろうから、String.valueOf1回呼出しの方がいいんでないの?
ということでしょ?
話しの流れをぶった切って悪いが。

>>75は初心者の質問ってことでOKだと思うのね。
でもそれから突っ込んだ話に発展して>>131あたりまでくると
このスレじゃなくて本スレ向きの話しだと思うのね。

>>1はこのスレと本スレをどう切り分けたいのよ。
ある質問がきっかけでそこから発展した突っ込んだ話しもこのスレで
扱いますってんなら本スレと分けた意味がない。
だからといって「じゃぁここからの続きは本スレで」と途中でスパッと
本スレに切り替えられるものでもないだろう。

>>1は指針を示せよと。
さもなくば、本スレ使い切ったらこのスレに合流、このスレを使い切ったら
スレタイを本スレのものに直して新スレ立てて従来の本スレの続き扱いで
行ってみては?
(つまり初心者歓迎と銘打ったスレはこのスレ限りで終わり、本スレで
初心者の質問を受け付ける)
>>131
だから、もし圧縮効率が良くて、バイト数減るなら、使わない理由はない、と。
>>133
ああ、そういうことか。
すると、それに対して 121 の発言があるわけだけど、
結局、133さんは圧縮率があがるかどうか何か意見を持ってるの?
バイトコードレベルで、文字列連結が通常の頻度であるコードについて
どの程度圧縮率があがるのか考察があるなら是非聞きたいなー。
135131=134:04/07/18 17:20
>>132
俺自身は、スレを分けることには反対です。
個人的には2つのスレを見なきゃいけなくなって面倒になっただけ。
ただ、あんまり思い入れがあるわけじゃないんで、分けるなら好きにすれば、って感じではあるがw
>>134
しらない。
っていうか、たぶん圧縮率があがる可能性は少ない。
>>132
無理無理。
元スレが今950くらいだろ。
新スレ立てちまえばいくら反対しようが強制的に分離される。
しかもテンプレで初心者をこのスレに誘導するらしいし。
そうなったら反対してても無駄なだけ。
今できることは
ふたつに分かれたスレをどう使うのか
能書きじゃなくて実践あるのみだと思う。
提案もいいがそれだけじゃどうにもならん。
どんどん質問に答えて場合によっては誘導して
自分の考えるオレ指針でガンガン参加していくしかないよ。
と言いつつおれもスレ分離には反対。
反対だがまず間違いなく新スレが立つので
質問に答える態度でアピールしていくつもり。
>>132>>1に指針を求めているが>>132自身はどうしたい?
それをここに書くもヨシ書かずに実践あるのみもヨシだと思うよ。
>>136
なんだ。じゃあ116と121は同じ意見だったのね。最終的には。納得。
>>138
うん、だから「もし圧縮率があがるなら」と。

そうそう。
ここの流れ見た初心者がなんか勘違いして
「String#valueOfより""+(char)ccの方が圧縮率高い」
とか思ったらダメだから、ちゃんとフォーローしておかねば、とウンコしながら思ってたんだけど、一緒に流れていったらしく、忘れてた。
ありがと。
140デフォルトの名無しさん:04/07/19 13:46
ム板で聞くのもどうかと迷ったのですがだめもとで書きます。
作ったアプリの配布はどうしていますか?
無料の勝手アプリで広告収入など商売は一切考えていません。
純粋にひとりでも多くの人に知って(使って)もらえたらいいなと思ってるだけです。
PCならベクターなのでしょうがiアプリでベクター級に宣伝効果を期待できるのは
やはりギガアプリかアプリゲットのどちらかなのでしょうか?
>>139
こちらこそ長い間つきあってくれてサンクス。
しかし「もし圧縮率があがるなら」が仮定法だったとわ…w
>>140 ここで晒せ。
143デフォルトの名無しさん:04/07/20 08:29
>>140
ココに晒すときの記述
「すごい面白いアプリ発見しました!皆さんも是非やってみては?」
144みのもんだ:04/07/21 00:30
java.util.arrays ってiアプリでは対応していなんですか?
>>144
java.util.Arraysのこと?
CLDCのAPIリファレンスに載ってないんだから対応してるわけないと思うが。
146みのもんだ:04/07/21 17:12
では配列のソートとかどうすればよいでしょう?
>>146 自前で書く
Javaしかやってないやつはsortも書けないのかorz
まあええやん。
つか、自分で書いてるとキリがないし、Arraysくらいは欲しかったと思ったよ。
最初は無くて当然とも思ってたけどね。
ソートが云々じゃなくって、Arraysを携帯アプリで使うこと自体が贅沢な話だったし。
今となっては容量にも余裕がでてきてるわけで、素で欲しいわ。
>>149
といっても、CLDCの仕様検討がJCPではじまったころは、まだjdk1.3.xは出てなかった
記憶があるからなあ。しかたないだろ。
それともcom.nttdocomo.util.Arraysが欲しいとかそういう意味?
>>150
utilに便利な関数ほしいよなぁ。
>>151
たしかに。
というか、java.utilパッケージにJ2SE準拠のクラスをいくつか追加キボン。
>>148
サンプルコードに簡単なソートも入ってるから、
書けるはずだとは思うんだけど、実際はどうなんだろ。
>>153
パフォーマンスいらなかったから、
バブルソートを使ったことはある。

しかし、ソートぐらいはサンプルなくても1から書けるだろ
一度書いたことがあれば、あとはサンプルとか要らずにかけるだろうけど。
J2SEの該当クラスのソースを手本に書いたらよさげじゃないのか?
>>156
ソースを自分で書くと、容量圧迫するんだよ。
(;´Д`).o0(ソートごときで…。6行くらいじゃねーか)
(´-`).。oO(100kbになったから余裕とか言ってる椰子いたなぁ…)
カメラで撮影するアプリ作ろうとしてエミュで画像開こうとすると
java.io.IOExceptionが出る。
なんで?
ソースに間違いは無いのだが・・
>>160
じゃ、ソースに間違いは無いから気にするな。
>>160
ソースに間違いがないのなら、エミュのバグ。実機で動けばいい。
>>160
いかにも初心者らしい質問の仕方だがこのスレでなら歓迎だ。
まず、提示している情報が少なすぎる。
エミュレータは何を使っているのか(DoJaのバージョン)、
「ソースに間違いは無い」とする根拠は何かとか。

現段階ではせいぜい、エミュレータの使い方は間違えてないか?
(操作じゃなくて設定やファイルの配置)
画像ファイルが適切であるか? くらいしか答えようがない。
164160:04/07/24 20:20
レスどうもです。
えーと、DoJa3.5です。
アスキーの出版してる本を見て勉強してるんですけど、
その本の内容のソースがアスキーのホムペからダウンロード出来るんですよ。
そのソースで試してみても同じエラーなので間違いはないかと。

エミュの操作は多分間違えてないはずで、画像も実際ケータイで撮影した物をPCに
取り込んで開こうとしたんです。

実機では試してないんですけどね。
Doja3.5という情報以外は、詳しそうに見えて実は何をしたのかが
さっぱり分からないな。ソースの内容もこっちで探せってか?
取り込んだ画像サイズも分からんし、形式も分からんし。
まぁ情報としてはこれだけでも心もとないが…
UTF-8の文字を半角文字か全角文字か判別する方法はありますか?
charの値から判別できるのなら良いのですが。
>>166
Javaは、UTF8だろうがSJISだろうが、読み込んだ時点でUCS2になってる。
だから常にcharはUCS2。
全角文字や半角文字は、1つの領域にかたまってるから。
unicode.orgでコードポイントの範囲を調べて比較すればおk。
168166:04/07/25 02:20
>>167
うぉ、ありがとうございます!
169163:04/07/25 10:21
>>164
ではそのソースが間違えていないという前提で話を進めることにする。
でもソースが見られるURLを書いて欲しいな。(先頭のhttp://のhは削って

エミュレータのフォルダ、iDKDoJa3.5\lib\multimedia\に
sample1.jpg(DoCoMoロゴの絵)、sample2.jpg(トマトの絵)がある。
いま問題にしているアプリを起動して、それら2枚のjpgを取り込んでみて。
これでエラーが出たらソースに間違いありってこと。

エラーが出なかったら、同じフォルダに別のjpg画像を置いて取り込む。
これでエラーが出たら画像ファイルに問題ありってこと。
画像の縦横の大きさ、ファイルサイズ、フォーマットなど調べどころは多いぞ。
170160:04/07/25 21:35
>>169
ソースうpしました。
ttp://www.uploda.org/file/0323.zip

エミュの画像はロゴ、トマト共に表示されました。
同じフォルダに違う画像を置いてみたらどれも同じエラーです。
SXGA1280*960  90KB jpg
QCIF176*144 11.9KB jpg
等で撮影した画像の画質設定を変えて試してみましたがダメでした。
フォーマットはjpgです。サイズ10KBを越えるとダメなのかと思ったのですが
手持ちのケータイでは一番低い設定でも10KBを下回らず・・・。
でも、実際ケータイで撮影した物だからサイズに依存する物だろうか?

エミュの画像は176*176でどちらも10KB以下ですね。
このサイズでないとダメなのだろうか?
エミューレータと実機の差なんでしょうかね?
171163:04/07/25 23:28
>>170
ソースがDLできないが、それはちょっと置いとく。

さて、160氏はDoCoMoの開発ガイドやAPIリファレンスを読んでカメラ機能について
理解を深めて欲しい。いくつか簡単に触れておく。
今回のエラーは以下の条件を満たしていないことが原因と思われる。

実機でアプリからカメラ機能を使う場合、勝手な縦横サイズでは撮影できない。
機種ごとの撮影可能サイズの取得などはAPIリファレンスを参照して。

ファイルサイズ(容量)は当然メモリの制限を受ける。容量は画質指定で変えられる。
指定の仕方はAPIリファレンスを参照して。ちなみに20KB程度でも読み込める。

jpgは内部的にJFIFとEXIFの違いがあり、大雑把に言って前者はPCで扱うフォーマット、
後者はデジカメで扱うフォーマット。もしかしてエミュレータでEXIFを読み込ませたから
エラーが出たのかもしれない?(スマン、確証なし)

それからサンプルソースがどうなっているかは知らないけど、カメラ撮影周りは
try-catchでがっちりフォローすべきだと思う。
EXIFはJFIFのみ対応のソフトでも読み込めるように拡張されてるから
JFIFとEXIFの違いの件は大丈夫じゃないかな。
他の点は171さんの言う通りだと思う。
173160:04/07/26 19:53
ダウンロード出来ないとのことで一応別の所にも、うpしときました。
ttp://kazumi.jdyn.cc/cgi-bin3/stored/up0348.zip

>>163さんのアドバイス>>171に習って色々試してみました。
まず撮影可能サイズを取得すべく
Camera.getAvailablePictureSizes()メソッドを使いその戻り値を表示したところ
1:(640,480)
2:(352, 288)
3:(176, 144)
4: (128, 96)
の四つのサイズが撮影可能らしい。
そこでQCIF(176, 144)の画像を開こうと試みるもエラー。因みにjpgの11.9KBです(JFIFかEXIFかは不明)。

次にtakePicture()メソッドの直前にsetImageSize(176, 144)を指定してみるも同じ結果。

気を取り直しjava.io.IOExceptionに注目してみた。
これはJ2SEの例外クラスでしょうか。
参照:http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/io/IOException.html
んでもってcatch(java.io.IOException e)で捕らえようとしたけど何故か捕まらない。
コンストラクタIOException(String s)にて詳細を取得すれば何か手がかりになるかと思ったが捕まらない。

以上取りあえず試してみたことです。
メモリの容量制限はちょっと分からなかった。
iアプリ初心者と言うよりJava初心者に近いので文章に意味ワカンネという所があるかも知れんが・・・勘弁してくれ。
>>173
J2SEなわけないじゃん。
>>173
うちのエミュレータ(DoJa3.5-1.03)だとエラーでないわ
ソースの変更は無しで、フォトショで作った352x288のJPG画像読ませた
ちなみにJDKは1.4.2使ってる
176163:04/07/27 00:09
>>173

サンプルアプリのソースを見たが、カメラ撮影と表示におかしな点はない。
また、>>170の時点でDoCoMoロゴやトマトの画像を読み込めていることから、
160氏が使っている画像に何らかの問題があるのではないかと考えられるのだが…
その「QCIF176*144 11.9KB jpg」の画像にこだわる意味はないから使うのやめてみれ。

こちらでサンプルアプリを実行してみたが、PC上で加工したjpgも
N505iで撮影してminiSD経由でPCに取り込んだjpgも問題なく読み込めた。
(288x352 8,622 バイト EXIF) エミュレータはDoJa-3.5用。

それからAPIリファレンスのCameraクラスを見てもIOExceptionをスローするメソッドはない。
(ストリームへのアクセスがないのに撮影&表示で発生するとは??)
>>173
IOExceptionがcatchできないのは、catchしようとしてるスレッドではIOExceptionが発生してないからだよ。
あと、IOExceptionはCLDCで定義されてるんであってJ2SEではないよ。
まあ、IOExceptionならどっち見ても同じだけど。
ちゃんとCLDCのAPIリファレンス見てる??
178160:04/07/27 22:02
もうね、わけわかんないよ。
皆さん、親切にレスしてくれてありがとう。
163さんなんか俺の最初のカキコから付き合ってくれてるのに
未だ解決出来なくて申し訳ない。

で、もう一度整理してみる。
まず俺の環境から
WindowsXP HoemEdition Ver2002 SP1
JDK1.3.1_12
DoJa3.5(FOMA)

んでもって、ソースは>>173でうpしたとおり。
みなさん問題なく表示されているようなので俺もペイントで作成してみた。
その問題の発生したjpgファイルもうpしてみた。
ttp://www.uploda.org/file/0444.zip
この中にある352-288.JPGを表示させようとファイルを開こうとした直後
DoJa.JPGのようになる。勿論この画像に限らずその他の適当な画像も同様(トマトとロゴ以外)。
それと、うpしたフォルダにはないが俺のケータイP900iで撮影したCIF(352*288)jpg12KB
をminiSD経由でPCに取り込んでも同じでした。

因みにどうして、JDK1.4を使わないのかというとDoJa3.5では正式には対応しておらず
不具合が発生することがあるらしいと、アスキー談。

いや、別にもう今、解決出来なければそれでも良いかなと。
何時か、ひょんな事から解決出来るかも知れないしさ。
もうカメラは飛ばして他を勉強しようかと。
>>178
どうも、このIOExceptionは、アプリとは関係ないところで発生してる気がしてならん。
エミュレータのバージョンは、175さんのもの(1.03)と同じ?それとも違う?
なんとなく実機で動かしたらすんなり動く悪寒。
>>178
こちらでも追試してみたが、やはり画像がいかんのだと思う。
別件で作ったカメラを使うアプリでも試したけど、やはり352-288.JPGは開けなかった。
(実機では普通に撮影画像が読み込めるものです)

気にせず、実機で撮影したものが読めればOK,ぐらいの気持ちでいいんじゃないか?
181175:04/07/28 01:38
>>178
352-288.JPGで普通に開けたぞ

> どうも、このIOExceptionは、アプリとは関係ないところで発生してる気がしてならん。

禿同
エミュレータが利用している下層JREが対応していない悪寒がするな

なお環境はこんな感じ
WinXP PRO Ver2002 SP1
JDK1.4.2_04
DoJa3.5-1.03

ちなみにアスキーのFOMA本のサンプルはこの環境で何本か試してみたけど今んとこ不具合ない
182163:04/07/28 01:48
>>178
こちらの環境ではサンプルアプリから352-288.JPGを読み込めた。
サンプルアプリはダウンロードしたものをコンパイルせずそのまま起動。

Windows2000 SP4
jdk1.3.1_06      ←>>178と微妙に違う。果たして?
DoJa-3.5, Ver.1.0.3
DoJa-3.0, Ver.1.0.2 ←一応やってみたけどこれでも読み込めた

>>180氏は読み込めず、>>175氏は読み込めている。
こうなってくると>>179氏や>>181(=175)氏の言うとおり開発環境の問題か?
>>178
「不具合が発生することがある」って、具体的な不具合が書いてないのならただの脅し文句。
公式に対応してないから、動かなくても文句いうなよ、程度の意味。
184175:04/07/28 11:52
XP HOMEだからとか、もしくはGDI+の有無とか考えられるか?
>>183
JDKは、1.4と1.3で、UIまわりの実装が大幅に変更されちゃってるから
本当に動かない可能性も否定できない。
漏れは、1.3で動いてたswingのアプリが1.4で動かなくなって苦労しますた。
>>185


…すみません。私にはサッパリ意味が分かりません。
>>186
いや、エミュレータが1.3でしか動作保証してないって話にレスしたつもりなんだけど。
一般的には183さんの言う通りだが、JDK1.3と1.4は大幅に実装が変わっちゃってるので
本当にエミュレータがおかしな動きをする可能性があるということ。
どこかスレ違いですか?
1.3でも1.4でもjavacが吐くコードに変化はないと思うが。
J2SEのクラスなんか関係ねーし。
>188
中間コードが変化がなくても、1.3と1.4ではVMの動作は変わるんじゃないかい?
携帯アプリエミュだって、VMと似たような物なんだし。
>>189 VMの動作変わっちまったら、そりゃJavaの信義に反するわ
>>190
VMの動作、ゴンゴン変わってるのだが。
GCのやり方やら、Swingコンポーネントの描画方法やら。
Swingコンポーネントの描画は、VMの上のレベルの話か・・・。
193ゆう:04/07/29 19:41
DISK1/setup.exeが開けません。
スタンダードエディションが見つからないといっています・・・。
どうすればいいのでしょうか?
>>193
何のCDでつか?
>>194
ふつうにDoJaのインストーラーの話だと思うが。

>>193
で、Javaは何をインストールしてんの?
196ゆう:04/07/29 21:28
書かれているとおり、
Windows Offline Installation, Multi-language (j2sdk-1_4_2_05-windows-i586-p.exe, 51.09 MB)
なんですが、これのインストールも最後まで行かないんです・・・。
問題があるとか言われて・・・。
197160:04/07/29 21:29
どうも、色々お騒がせしました。一応の決着を付けました。
ジオにうpして実機で動作確認しました。表示出来ました。
>>179さんの言うとおりver3.5_1.03でして、実機で試したらすんなり動きました。

みなさんのレスみているとやはり、PC環境の問題のような気がします。
何が影響しているのかはさっぱりですけどね。

>>183
先に詳しいことは書かなかったけど、実際1.4だとうまく動作しないアプリがあった物で
アスキーの本では必ず1.3をインストールすること。と断言していたので。
まぁここで捻くれる必要もないか、と言う感じで。
それ以降、1.3と1.4の議論がされてますが確かに実体験から挙動は違う箇所があるようです。
俺も最初1.4だったけどうまく動作しないアプリがあったので1.3を入れたら動きました。
たぶん初歩的なCanvasアプリだったと思います。忘れました。

何はともあれ次節に進むことにします。
1.3だろうが1.4だろうが、本質的な部分でこのスレとは関係ない
エミュが1.3か1.4かで挙動が違う可能性がある、という部分までは賛同できるが、それ以外の議論は無駄
・・・まぁこのレスも>>197の「実機で確認した」ということで意味がないんだけどな

結局、腑に落ちないときは実機で確認しろってことかね
199ゆう:04/07/29 23:13
追加です。
emufordoja3_5_foma_109のセットアップが出来ない
んですが、どうすればいいですか?
その前のはインストールできていると思います。
その前の、ってなんだ?
いままでずっと1.4でDoJa使っているが、初歩的なCanvasアプリが動かなかったことなどない。
202ゆう:04/07/30 09:50
1.4はインストールできていると思うのですが、
スタンダードエディションが見つからないと言っています・・・。
インストールも最後までいかない、と書いてあったと思うんだけど。
204ゆう:04/07/30 10:36
はい、なんか「開発ツール」や「デモ」などを選び方によって
成功したり失敗したりします。
後は次の項目のチェックを入れたりはずしたりもよって・・・。
とりあえず、自分だけにわかることばじゃなくて、ちゃんと書いてくれる?
で、ディスクはいっぱいになってないよね。
初心者歓迎のスレだとは言え、これはあまりにもひどい。
207ゆう:04/07/30 10:53
すいませんでした。
勉強して出直してきます。
テスター向けの機種はどれでつか?
P503iなんかいいかもね

マジレスすると、Nで使えれば速度的には他の機種でも大丈夫という印象がある
DOJA3以降

読み込んだ画像の上に線とか文字を書いて、
それを範囲指定してコピーしたいんだけど、
どの命令で出来ますか?
ちなみにコピーしたやつはアンドゥ用に使う予定です。
>>210
読み込んだImageに対してgetGraphics()
あとはGrahpicsクラスのメソッドが使い放題だ。
すきにしてくれ。
212210:04/07/30 22:23
>211

copyAreaはダメでしょうか?
ちょっと見た感じでは一番やりやすそうだったんですが。
213211:04/07/30 22:28
>>212
コピーって、アンドゥに使うってことは、
コピー元とコピー先は同じGraphicsではないんでないの?
だったらcopyAreaは使えん。
getPixelsとか使うことになると思うが…。
214210:04/07/30 22:38
アンドゥ用の画像を画面外のどこかに置いておいて、
元に戻すときに、画面外から持ってきて
メイン画面に表示…ってなことを考えてます。
copyAreaではダメでしょうか?
>>210
copyAreaではダメか、copyAreaではダメか、しつこく聞くな。
やれよ勝手に。なんでそんなこと人に確認取ろうとしてんだよ。
216210:04/07/30 23:26
>>215
すいません。
できるかどうか作る前に知りたかったもんで。
>>211
ありがとうございました。

getGraphics()
してからファイルに書き出せ
218210:04/07/31 23:08
>>216
まあ、そこまで考えてるなら実験してみるのがいいね。
だめならgetPixelsつかえばいいし。
219デフォルトの名無しさん:04/08/02 17:42
iアプリでネットワーク対戦ゲームを作りたいのですが、
iアプリって、ソケット通信できますか?
>>219 HTTPだけ
221219:04/08/02 17:51
>>220
ありがとうございました。

iアプリでのネットワーク対戦ゲームの作り方を紹介してる
HPとか、本とか ありますでしょうか?
ご存知なら教えてください。m(_ _)m
>>221
iアプリではなく、CGIゲームで探すといいぞ。
HTTP通信でネトゲという考え方が同じだ。
223219:04/08/02 17:58
>>222
わかりました。探してみます。
ありがとうございました。
ソケット通信ってなんですか?
>>224
インターネット通信のことです。
226デフォルトの名無しさん:04/08/02 18:41
とあるサイトでiアプリを配ってるんですが、なぜかD900iだけダウンロードできないと報告がきています。
メッセージは、「ソフトに誤りがあります」と出るらしいです。
(メッセージからすると、.jamファイルの解釈でつまってそうですが)
漏れは、Javaはあまりというか全然詳しくないし、実機があるわけでも無いし...
この辺を調べれ!というのがあったら、おながいします
>>226 jamファイル晒せよ
前にも見たような・・・
229デフォルトの名無しさん:04/08/02 19:01
以下の通りです
AppNameとPackageURLはアプリを特定できないように変えました。
(文字数は同じ)

UseNetwork = http
LastModified = Sun, 31 May 2004 11:07:03
SPsize = 70020
AppClass = IamI
UseBrowser = launch
AppName = アプリのお名前1
PackageURL = ABCDEFGHIJ.jar
AppSize = 20006

SPsize = 70020
これか?
>>228
本スレPart5で見たような・・・
アプリで使える3Dグラフィックスのフォーマットはどちらになるのでしょうか?
また、フリーソフトでそれを作成できるソフトなどありますでしょうか?
>>232
これじゃ。
ttp://www.mascotcapsule.com/
LINKのところにツールへのリンクが張ってあるとか、わかりづれーとか
不適切極まりないサイトだが
どうせなら隅々まで読む勢いで。
234232:04/08/03 10:25
>>233
ありがとうございます!
235デフォルトの名無しさん:04/08/03 15:50
>>228,231
どんな内容だったか覚えてないでつか?
過去ログが見られない状態なので...

ひょっとして、アプリの名称に半角カナがあるとダメとか?
過去ログ見てみたけど、特にDについてはなかったな。
とりあえずSPsize = 409600にしてみそ。
(これはP900、N900のJPEGバグ回避用だが、D900は…?)

あと、アプリの名前の文字が特定の日本語文字だとダメな機種が
昔存在したな。D900がそうかはわからんが。
アプリ名の最後をとりあえず半角英字にしてみ。

どっちもダメだったらもう一度戻っておいで。
その時は、いつエラーがでるかも調べておいで。

DL始まる前。
DL中。
DL終わって保存するとき。

FOMAは通信早くて見分けつきづらいんだけどね。
237デフォルトの名無しさん:04/08/03 17:24
2つの150KBのIモーションを連続してPanel上で再生することはかのうでしょうか

>>235(=229?)
制御コードの問題でアプリ名に使えない文字があるって情報。
そのときはSH900が問題になっていた。
>>229はアプリの名前が伏せられてるから答えようもないけど。
>>235
とりあえず、
AppName = aaaaaaaaaaaaaa1
とかで試してみれば?
>>238
SH900の問題とやら教えて欲しい。
900系の中でSHだけは気をつける点が無くていい機種だと思ってた。

P,N→SPを409600にしないと通信、JPEG読み込みが逝かれる問題
F→待ち受け。休眠から非活性化へ移るときメッセージより先にスレッドが復活してしまう
D→全体的にもうダメポ
241238ではないけど、:04/08/04 09:45
>>240

SH⇒半角カナの後にメタ文字を含んだ漢字を使用するとDL後保存できない
⇒505シリーズまで実装していた拡張APIのQRコードリーダーが900iになって実装されなくなった
⇒AppTraceにて出力できない端末がある

他にもあるんじゃない?
242241:04/08/04 09:46
訂正。
「QRコードリーダー」⇒「コードリーダー」ね。
>>241
>   ⇒505シリーズまで実装していた拡張APIのQRコードリーダーが900iになって実装されなくなった

DoJa3.5で標準APIに移ったからでは?
うほっ、ありがd
半角カタカナにはしっかり対応してもらいたいものだ。
携帯では半角頻繁に使うんだから(´・ω・`)
245デフォルトの名無しさん:04/08/04 11:33
substringが思ったとおりに動作しなくてこまってます。
下記のコードを実行するとstrに1が代入される。

public class TestDoja extends IApplication {
public void start() {
String str = "123456".substring(2, 3);
}
}

eclipse上のデバッガで確認してるんだけど
通常のJava環境で実行するとstrは3になるしそうなって欲しいのだが。。。
substring使うとゴミが入るみたいな話はググったら出てきたんですが
ちょっと違う見たい出し。。。
246デフォルトの名無しさん:04/08/04 11:34
substringが思ったとおりに動作しなくてこまってます。
下記のコードを実行するとstrに1が代入される。

public class TestDoja extends IApplication {
public void start() {
String str = "123456".substring(2, 3);
}
}

eclipse上のデバッガで確認してるんだけど
通常のJava環境で実行するとstrは3になるしそうなって欲しいのだが。。。
substring使うとゴミが入るみたいな話はググったら出てきたんですが
ちょっと違う見たい出し。。。
247デフォルトの名無しさん:04/08/04 11:35
245です連続投稿すんません。。。orz
で、"3"になりそうだが、実際にはどうなるのよ。
うお、すまん。"1"が入るのね。

String strTmp = "123456";
String str = strTmp.substring(2, 3);

すればどうよ。
250245:04/08/04 12:49
レス有難う御座います。

public class TestDoja extends IApplication {
public void start() {
String tmpStr = "123456";
String str = tmpStr.substring(2, 3);
System.out.println(str);
}
}

とやったらEclipseのデバッガで変数をのぞくと1なんですが
コンソールには3が表示されました。。。。

もしかしたらデバッガがちゃんと変数を覗けてないのかも知れません。
うへへへへ
251245:04/08/04 13:17
ちゃんと切れてました、お騒がせしてすみません。
マジ泣きそ。。。orz
252210:04/08/04 14:46
あれから色々チャレンジしましたが、まだ実現できてません。
copyAreaは画面外だと上手く使えませんでした。

>>211
> 読み込んだImageに対してgetGraphics()

画像範囲の指定は可能でしょうか?
canvasに描かれた画像の範囲を指定して、
新しいimageで持てれば嬉しいのですが。

>>213
>getPixelsとか使うことになると思うが…。

画像サイズ(約200x200)が大きいので遅くて使えませんでした。
あと、なぜかsetPixelsで取得したら真っ黒でした。
GIFやJPEGを読み込んだImageに対しては、書き込みできないぞ。
254デフォルトの名無しさん:04/08/04 15:40
myBut1=new Button("AccessTest1");
myBut2=new Button("AccessTest2");
this.add(myBut1);
this.add(myBut2);
this.setComponentListener(this);

こんな感じでポコポコボタンを並べるときに

[ボタン1] [ボタン2]

って感じに並んでしまうんですけど

[ボタン1]
[ボタン2]

みたいにしたいんですけどもどうやってやったらいいんですか?

お願いします。
HTMLLayoutでbr()挟めばいいんでないか?
>>251
祝一平の格言
「七度デバッグしてマシンを疑え」
257デフォルトの名無しさん:04/08/04 16:53
>>255
ありがとうございます、まったくの初心者で申し訳ないです
で、、、ですね

LayoutManagerで書いてみたんですけども動かないです。。。
なにが間違ってるのか良く分からないので誰かお願いします・・・・


public class NetPanel extends Panel implements ComponentListener, LayoutManager{
Label lbltxt1;
Button myBut1,myBut2,myBut3,myBut4;
LayoutManager lm = new HTMLLayout();

NetPanel(){
lbltxt1 = new Label("ネットワークデータ");
myBut1=new Button("AccessTest1");
myBut2=new Button("AccessTest2");
myBut3=new Button("AccessTest3");
myBut4=new Button("AccessTest4");
this.setBackground(255);

this.setLayoutManger(lm);
this.setComponentListener(this);

this.add(myBut1);
this.add(myBut2);
this.add(myBut3);
this.add(myBut4);
this.add(lbltxt1);

}
まず、add()を
lm.begin(HTMLLayout.CENTER);
lm.end();
で挟む。
HTMLLayout.CENTERは単なる例。左寄せでも、右寄せでもお好みで。
改行したいところで、lm.br();
259デフォルトの名無しさん:04/08/04 17:21
>>258
即レスありがとうございます。

>this.setLayoutManger(lm);

の行でシンボルを解決できません

とのエラーが出てパネルにレイアウトマネージャーをセット出来ないのですが
どうすればいんでしょうか。。

コードは>>257の通りです。

宜しくお願いします
質問内容とはズレた点だが一言。
>this.setBackground(255);
引数がダメ。「255」って何色だ?

iアプリでの色の指定は、
int color = Graphics.getColorOfName(Graphics.WHITE);
int color = Graphics.getColorOfRGB(255,255,255);
のようにして色名かRGB値で取得した値を
this.setBackground(color);
とする。
261デフォルトの名無しさん:04/08/04 18:19
>>260
ありがとうございます。
いままで
this.setBackground(colorGraphics.getColorOfName(Graphics.YELLOW));

とか書いていてerrorだったのでよく分からずAPI見たら整数値って書いてあったので
とりあえず255を・・・・

ちなみに255は 255.0.0 だと思われます・・・真っ赤です。
262デフォルトの名無しさん:04/08/04 20:01
>>257
LayoutManager lm = new HTMLLayout();

HTMLLayout lm = new HTMLLayout();
に変更。
264デフォルトの名無しさん:04/08/04 20:46
>>263
ああああああああああああああああ

あ、あアリガトウございます!バッチシ動きました!

皆様にも大変お世話になりました!

これからも精進してiAppli作ります!

本当にアリガトウございます
265213:04/08/05 00:38
>>252
> なぜかsetPixelsで取得したら真っ黒でした。
setPixelsで取得ってどういう意味ですかw
> 画像サイズ(約200x200)が大きいので遅くて使えませんでした。
getPixelをループでまわしちゃだめだよ。getPixelsだよ。
266241:04/08/05 00:46
>>243

>> ⇒505シリーズまで実装していた拡張APIのQRコードリーダーが900iになって実装されなくなった
>DoJa3.5で標準APIに移ったからでは?


貴方のおっしゃるとおりです。
でも上位互換・下位互換くらいは気にして端末作って欲しいよね。
他のメーカーは505iでコードリーダー機能がついてなくても、900iではちゃんと拡張APIにも実装してるんだし。
先駆けたメーカーがやらないんじゃ呆れるよ。
おかげで505時代に納品したアプリで、お客からクレーム来るし・・・。
ドコモのHPに注意事項で発表くらいしておいてほしい。
>>266
オプションAPIというのはそういうもんだと思うが。
>>267

他の機能はオプションAPIに残してあるが?
>>268
オプションAPIというのはそういうもんだと思うが。
270デフォルトの名無しさん:04/08/05 07:25
>>266
ドコモじたいが、状況を把握してないんじゃない?
テストは、納入業者(端末メーカー、IP)がやるもんだと思ってるみたいだからな。
271デフォルトの名無しさん:04/08/05 13:24
public void componentAction(Component c, int type, int param) {
}

というコンポーネントアクションで
コンポーネントのフォーカスが移動される度に呼び出したい関数があるのですが
というか画像のアニメーションをしたいのですが

if(type == SELECTION_CHANGED)

という風にしても反応してくれません
どなたか分かる方いらっしゃいましたらお願いします
>>271
ComponentListenerはimprementsされてる?
Panel#setComponentListenerで登録した?
↑を前提として、
フォーカスが移動したときに、componentAction()で
受け取られるtypeとparamは?
>>270
んなこたーない。
jamファイルのAppParamをcgiで書き換えてアプリごとにIDを持たせようと思うのですが、
AppParamを端末側で編集できることってあったりしますか?
たぶんないと思うにょ。
>>274
ない。
277デフォルトの名無しさん:04/08/08 06:55
アプリを強制終了されたのをサーバで検出する方法って
ありますか?
電源ボタン押して終了した場合、finallyに処理書いても
無視されますよね?
278274:04/08/08 12:43
大丈夫ですか。どうもありがとうございました。
launch、LAUNCH_BROWSERって、canvasでは使用できませんか?
コンパイル時にエラーが出ます。
>>279
エラーの内容をかかないとわからん
281279:04/08/08 13:51
↓です。

シンボルを解決できません。
シンボル: メソッド launch (java.lang.String,java.lang.String[])
場所 : GameScreen の クラス
launch(LAUNCH_BROWSER,new String[]{"http://xxx"});
エラー 1 個
javacの実行に失敗しました

>>281
launchはCanvasには無いのだから、そうなるのはあたりまえだろ。。。
iアプリやるまえいにjavaを勉強しる!
ちなみに、getCurrentApp()すれば、どこでもIApplicationの参照を取得できるので、
IApplication.getCurrentApp().launch(IApplication.LAUNCH_BROWSER, ....)
とかけば出来るよ。
>>277
無い。
電源断の時に呼び出されるhookがないからむりぽ。
284279:04/08/08 14:19
>>282
ありがとうございました!
解決しました。勉強に励みます。
>>277
283の言うとおり無い。

まぁ、アプリ起動時と正常終了時にサーバと通信すれば、
正常に通信を行って終了したかぐらいはわかるかもしれん。
505でマイピクチャ内の画像(25KB)をサーバに送信って可能でしょうか?
それとも10KBの制限で絶対に無理ですか?
>>286
分割すればいいじゃん。
288286:04/08/08 22:56
アドバイスありがとうございます。
具体的に、どこの部分を分割すれば宜しいでしょうか?
>>288
おいおい。。おれは287ではないが…。
そもそも10KBの制限が何に対する制限なのか分かってるならそんな質問できないはずなんだが。

10KB制限ってのは、1回のコネクションで送れるデータの量の制限だろ?
だったら、25KBのデータをサーバに送信するには、
10KB + 10KB + 5KBの3回に分けて送信すればいいってことだ。

ちなみに、1回のコネクションで送れるデータ量の制限が、505で本当に10KBだったかどうかは知らん。
開発者ガイドでも見て調べてくれ。
290286:04/08/08 23:12
アドバイスありがとうございます。
InputStreamをはじめて使ったので、とまどっております。
これは普通の配列のように分割できるのでしょうか?
もしよろしければ簡単な記述があれば嬉しいかと思います。
>>290
質問から察するに、InputStreamにどんなメソッドがあるかすら理解してないと思われ。
CLDC1.0のAPIリファレンスは見てるかい?

InputStreamの使い方がわからないなら、市販のJavaの本なり、適当に検索するなりして
基本を理解しといた方がいいと思う。

まあ、一旦、バイト配列に書き出すか、ByteArrayOutputStreamに保持しとくかして、10KBずつ、
送信のためのOutputStraemに書き出していくことになるんじゃない?
292286:04/08/09 13:48
バイト配列に書き出したのですが、それを送信する方法がわかりませんでした。
ストリームで送信する方法しか知らないので。。。。
POSTで送るんだ。

294デフォルトの名無しさん:04/08/09 14:57
あげ
確かに10KB以上のを送るサンプル例はどこにも無いな。
505が出てからだいぶたつのに。
初心者は皆、諦めテルっぽい。
>>292
もちろんストリームで送信するんだが。
Connector.open("http://hogehoge/")して、requestMethodをPOSTにして、openOutputStreamして書き込めばよろし。
そのあとconnect()してね。

297286:04/08/10 02:34
>>296に書かれてるPOSTでバイトの件は解決しました。
ただし、分割したところで、CGIに渡すのは10KBに限られてると思います。
これはCGI側で結合しないとダメということなのでしょうか。
>>297
> 分割したところで、CGIに渡すのは10KBに限られてると思います。

一度に渡すのは10KBに限られてるから分割するのだが。

> CGI側で結合しないとダメということなのでしょうか。

分割したんだから結合しないとダメなんだが。

>>295
受け側のしくみも作らないといけないから、サンプル書きにくいんだよね。
なにで受け側書くかというのが問題で。
iアプリがJavaだからサーブレットで書くか、と思うと、このレベルのサンプルが必要なヤツはサーブレット知らないことが多すぎ。
じゃ、知ってる人が多いPerlで、とすると実際の受け側としてはPHPが使われることが多かったり。
なにで書いてあっても、他に置き換えるのは難しくないんだけど、このレベルのサンプル求めるヤツは、他からの置き換えできないし。
>>298
てことで、全種類書くか何か一つ書いてくれ
初心者スレなんだから「このレベル」の奴が多いのは当たり前
299=286
>>299
めんどいので、代わりに頼む。
302286:04/08/10 09:38
やはり結合が必要でしたか。

とりあえずPerlでやってますが、PHPに移行する予定です。
サンプルをいただけるなら、どちらでも構いません。

>>286
ちょっとは探す努力をしろよ
情報が少ない分野じゃないんだから
だいたいその話はスレ違いっぽいし
304286:04/08/10 10:06
>>303
CGI側で結合するヒントが得られたので、自分で作れるかもしれません。
ちなみに24時間中18時間くらいGoogleを開いてます。
ありがとうございました。
>>286
18時間もググってるってアホか?探し方が悪すぎ。
ググりゃそのものズバリの回答が出てくると思ってんじゃないのか?
18時間のうち15時間をhttpやcgi/perl/phpやJavaの勉強に割り当てろよ。
306286:04/08/10 10:27
はい
307デフォルトの名無しさん:04/08/10 11:56
javaからUIDって取得出来ますか?

System.getProperty("microedition.platform");
で機種判別は出来るのですが
UIDの取得をするのはどうやればいいのでしょうか?
>>307
サーブレットだったら取得できます。
>>302
1.cgi:
#!/bin/sh
cat > ../htdocs/hoge.gif
echo "Content-Type: text/plain\n\n";

2.cgiと3.cgi (どっちも同じファイル)
#!/bin/sh
cat >> ../htdocs/hoge.gif
echo "Content-Type: text/plain\n\n";

最初に1.cgiにPOSTして、次に2.cgiに、最後に3.cgiにPOSTしてねw
>>307
UIDってなに?FOMAのUSER_IDのこと?
だったらPhoneクラスのgetProperty()で取得できるけど。
GetUTNは必要になるけどね。
サクラエディタでiアプリ作成中のものですが、(Doja3.5+サクラエディタ)
質問です。
コンパイルしたときに
g.drawString(Float.toString(c),getWidth()/2-3,24);
でエラーになります。
エラーは
C:\iDKDoJa3.5\apps\Tenfour\src\Tenfour.java:1559: シンボルを解釈処理できません。
シンボル: 変数 Float
位置 : Game01 の クラス
g.drawString(Float.toString(c),getWidth()/2-3,24);
です。
もちろんcはfloat変数なのですが、
この記述ではfloatをStringに変換できないのでしょうか?
やりたいことは、(書かなくてもわかると思いますが)
floatをStringに変換して、g.drawStringで描画したいのです。
どのようにすれば、エラーをなくすことができるでしょうか・・・
よろしくお願いします
>>311
staticメソッドについて学んでください。
つーかfloat使えないだろ
CLDCのAPIリファレンスでも見てくれ
>>2のリンク先にあるから

>もちろんcはfloat変数なのですが、
コンパイル時にはエラーにならないので注意
ちがった。
CLDCについて勉強してください。

Floatやfloatを使わなければエラーをなくすことができます。
315デフォルトの名無しさん:04/08/11 12:41
iAppliに表示する画像の透過色の設定ってどうやるんですか?

お願いします。
TransparentImageクラスを使う。
オプションAPIなので、機種依存性をチェックしてから使え。
317311:04/08/11 15:46
>312
即レス感謝です。
staticメソッドをぐぐって調べてみましたが、
解決策はみつけられませんでした。
ちなみにすぐ下の行で「Long.toString」も行っていて、エラーは起きないので、、
floatそのものに原因があるんではないかと思っていましたが・・・

>313,314
そうなんですか。。。
それは知りませんでした。通りで検索してもなかなか出てこないわけですね、
CLDCのAPIをダウンロードしてみましたが、
そこには「floatは使えない」とは書いてないということでしょうか?
CLDCの仕様みたいなものかな?
とりあえず、検索してみます。ありがとうございました。

そこで新たな質問なのですが、floatが使えないのであれば、
それの代わりになる記述ってあるのでしょうか?
無かった場合はやはり、変数*10^(表現したい小数点の桁数)
で数値水増しして、計算後に、
1の位から、表現したい小数点の桁数分を小数点以下の数として、
自分で作るしかないのでしょうか?(だいぶんわかりにくい文章ですみません)

もしかすると、CLDCに書いてあるかもしれませんね
とりあえず、勉強してみます。
>>317 むしろCLDCにはFloatが使えるなんて書いて無いだろ
319315:04/08/11 16:19
>>316
アリガトウございます
import com.nttdocomo.opt.ui.*;
をインポートして

TransparentImage ti;

と宣言して

paintメソッドで

ti.setTransparentColor(Graphics.getColorOfName(Graphics.BLACK));

とやってみたのですが、TransparentColorの実行のところで

java.lang.NullPointerException


が返ってきてうまくいきません、おねがいします。
>>317
> 無かった場合はやはり、変数*10^(表現したい小数点の桁数)
> で数値水増しして、計算後に、
> 1の位から、表現したい小数点の桁数分を小数点以下の数として、
> 自分で作るしかないのでしょうか?(だいぶんわかりにくい文章ですみません)

そんな感じだ
よくやるのは固定小数点として扱う使うやり方
変数<<小数部のビット数
って事。<<は左シフトな

それと、精度に注意
x10^n なら 0.1 を正確に書けるけど
x2^n の場合は無理 (0.1を2進数で書くと、0.0001100110011............ になるらしい)

用途によって使い分けてくれ
>>319
tiがnullなんでしょ
322デフォルトの名無しさん:04/08/11 16:35
TransparentImage ti = new TransparentImage();

とやると

TransparentImage() は com.nttdocomo.opt.ui.TransparentImage で protected アクセスされます。

とのエラーが出てしまいます。宜しくお願いします
>>311
iアプリコンテンツ開発ガイド for DoJa-3.0 詳細編
http://www.nttdocomo.co.jp/p_s/imode/java/pdf/jguideforDoJa3_0_040428.pdf
にfloatが使えないと記述してある。

とりあえずオフィシャルなドキュメントは面倒くさがらずに全部読めよ。
機種別の挙動の差異以外は、それらを読めばほぼ解決するから。
>>322
「よろしくお願いします」ぢゃなくてさ…

ちゃんとドキュメント読めば直接インスタンス作る
ことができないのは分かるだろ?

createTransparentImageつかえ。
setTransparentEnabledつかえ。
それからsetTransparentColorつかえ。
まぁ何だな。
「ドキュメントを読まない、読めてない」
「検索してない、何をキーワードに検索するか分からない」
これを脱することがすなわち脱初心者の第一歩なわけだな。
326デフォルトの名無しさん:04/08/11 19:03
質問なのですが

String text = {
"1",
"2",
"3"
}

というtext[3]の配列の要素数をプログラムで取得するのはどうやってやればいいのでしょうか
>>326
もう何をツッコムべきかもわからんのだが…
  String[] text = new String { "1", "2", "3" };
ならば text.length で3が帰ってくるぞ
>>327 モチツケ

>>326
文字列の配列だから、宣言(と同時に代入)はこうする。
String[] text = { "1", "2", "3" };
そして文字列に限らず、配列の要素数は xxx.length で取得できる。
すなわち int size = text.length; で size は 3 となる。
なんというか、CLDC1.0でfloatが使えないということは、
CLDCの仕様書(APIリファレンスじゃない)には明記されてるんだよな。
iアプリの開発者でCLDCの仕様書読んでる香具師は何人いるんだろう…。
まあ、大したことは書いてないのだがw
330311:04/08/12 01:38
>318
すいません、ざらっとしか見たことなかったので、見逃していました。
ちゃんと読むようにします。
>320
親切にありがとうございます。よくわかりました。

>323
面倒くさがってました・・・ちゃんと読むようにします。

>329
今回のことで、よくわかりました。
やはり基本的なことを理解してないとだめですね。
とくに何がサポートされていて、何がサポートされていないかは
仕様書を読まないといけませんね。。。

トラブったら検索すればだいたいが解決できてしまうので、
なんとなく、流してました。

以後気をつけるようにします。
ありがとうございました。
331329:04/08/12 01:55
>>330
まあ、CLDC1.0の仕様書ってのは英語だし(APIリファレンスだけ和訳されてる)、
無理に隅から隅まで読むようなもんじゃないよ。
ただ、何かあったときに調べられるようにはしといた方が良い。

DoJaの開発者ガイドも、そういう意味では、最初から隅から隅まで読む必要はないと思うが、
今回のように解決できないトラブルが発生したら、まず最初に読むべきだと思う。
332デフォルトの名無しさん:04/08/12 20:07
iAppliで作った物をezとVにローカライズしてくれるサービスってあるんすか?
自分で作成したフォントを表示したいんだけど、
setPixelが遅くて使い物になりません。
いい方法はないですか?

for( int i = 0 ; i < 12 ; i++ ){
int bit = 1;
for( int j = 6 ; j >= 0 ; j-- , bit *= 2 ){
if ( (font[ch][i] & bit) != 0 ){
g.setPixel( cx + j, cy + i );
}
}
}
>>333
用意したフォントを1まとめにして画像ファイルとして保持し、
必要に応じて切り出して表示する。これが現実的。
335デフォルトの名無しさん:04/08/12 21:31
それも結構重そうだな
336333:04/08/12 21:41
>>334
それだと色が指定できない。
>>332
「iもどき」でググれ。かなり限定的ではあるが、無いよりは良い。
338デフォルトの名無しさん:04/08/12 23:24
>>337
おおおおおおおおおおおおおおおお

ありがとうございます。ちょっといろいろ試してみます
339333:04/08/12 23:53
いきなり独断と偏見でずばっと書いちまってすまんw あくまで一つの参考として見て欲しい。

>>335
333が用意したフォントサイズは1文字6x12ドット。
英数大文字小文字記号でも画像はたいした面積にならない。
メモリの負担も大きくないし、実は実際に自分でこれやってる。
ストップウォッチみたいな時間計測にシビアなアプリで使うと描画時間の誤差が
気になるかもしれないけど、ゲームでスコアやステータス表示に使うなら問題ないよ。

>>336
文字の部分を透過したgif画像で持つ。
描画時に1文字分の四角領域を目的の色で塗りつぶしてから文字の画像を描く。
ただしこの場合は文字の背景色が白なり何なり、元のgif画像で決めた色にしか
ならないのが欠点。文字を描画する領域の背景色が常に決まった単色なら使える方法。
これも実際に自分でやってる。
スクラッチパッド上でパレットを書き換えて読み出すって方法もあるにはあるけど、
1文字ずつ色を変えたい場合にはどうかと思うな。

一応、例。「0123456789」(60x12ドット)の画像'img'で1桁の数字nを(x,y)に描くなら
g.drawImage(img, x, y, 6 * n, 0, 6, 12);

白背景で文字が透明な画像'img'「0123456789」(60x12ドット)を用意して
画面の背景色が白のところ(x,y)に任意の色の1桁の数字nを描くなら
g.setColor(g.getColorOfRGB(任意の色));
g.fillRect(x, y, 6, 12);
g.drawImage(img, x, y, 6 * n, 0, 6, 12);

面積が72ドット(=6*12)の画像を描画するのにsetPixel()の72倍の処理時間がかかるわけ
じゃないし。なおsetPixel's'()で十分な速さが得られるかどうかは試してないので不明だ。
340334:04/08/12 23:54
ごめん。>>339の書き込みは333氏ではなく334です。
341333:04/08/13 00:09
>>339 ありがd
透過gifを試してみます。画面全体に文字を書いて
スクロールさせたりするんだけど、重くないかな?
>>341
試すときは、Nでやるように。
他で重くなくても、Nだと激しく重いことがよくある。
>スクラッチパッド上でパレットを書き換えて読み出すって方法もあるにはあるけど、
>1文字ずつ色を変えたい場合にはどうかと思うな。
Palette、PaletteImage使ってみるのは?
>>343
それらはオプションAPI。使うなら、対応していない機種があることを考慮しないと。
345344:04/08/13 02:26
オプションAPIなのはDoJa-3.0までだね。DoJa-3.5では基本API。
ImageStore型のデータをスクラッチパッドに保存したいのですが
一体どのようにすればよいのでしょうか?
C言語風にキャストすればいいのかと思っていろいろ試して見たのですが
全てエラーになってしまいます。(下はlongにキャストしたときの例)

ImageStore is = null;
DataOutputStream dos = Connector.openDataOutputStream("scratchpad:///0;pos=0");
dos.writeLong((long)is);
347デフォルトの名無しさん:04/08/13 12:45
質問させていただきます。

WinXP
ECLEPS2.1(3.0も試行)
DOJA3.5
jdk1.3.11

上記環境にてアプリ制作を試しているのですか、
実行時に生成されるjarファイルがサイズ0で生成されるため実行できません。

自前で作ったソースだけでは無く、ネットで公開されているサンプルや、
HelloWordのような初歩的なソースも同様です。
何か回避策などございませんでしょうか?
よろしくお願い致します。
環境を再インストールしてみたら?
>>346
無理
>>346
C言語のような理不尽なキャストはJavaではできない。

346の例のようなキャストはC言語でも無理だと思うが。
>>346
APIリファレンスよく見てみ。
ImageStore#getInputStream()
あとは分かるだろ?
>>342
Nで試した。遅かった。
画面いっぱいに 6 x 12 のGIFを表示したら 2秒くらいかかった。
ImageMapを使ったらものすごく早くなった。
で、オプションAPIの機種依存ってどっかにまとめられてないの?
>>352
ほー、ImageMapは早いのか
今度使ってみよ

>で、オプションAPIの機種依存ってどっかにまとめられてないの?
ttp://www.nttdocomo.co.jp/p_s/imode/make/java/index.html
DoJa2.x,3.0はあるけど3.5は無い
Nったって504Nなのか505Nなのか。504Nに比べ505Nの描画能力は向上してる。
画面サイズも書いてないし、どんなgif画像も分からないし、それで「遅い、2秒くらいかかった」
といわれても端末の処理が本当に遅いのか、組み方は工夫されているかどうか、とか
判断つけられないと思う。
>>354
N505 > N504だとしても、ほかの505 >> N505 だからなぁ。
356デフォルトの名無しさん:04/08/14 18:43
自分で作ったアプリを自由にアップロードできるサイトってありませんか?
>>356
自分のサイトw
>>357
無理だろバカ
は?
ちょっとお伺いします。
iアプリ起動時に端末情報(シリアル番号みたいなもの)を取得できますか?
iアプリDXでは出来そうな気配ですが。
Phoneクラスでドゾ
・携帯電話の個体識別番号(電話機のシリアル)
・UIMの個体識別番号(FOMAカードのID)
が取れる

>導入されたバージョン: DoJa-2.1
だからFOMAか505以降なら使えるみたいだな
詳しくはAPIリファレンスや開発ガイドを見てチョ
362360:04/08/15 00:54
できるみたいですね。
ありがとうございます。
Eclipseを使って作りたいのですが
ドコモのクラスファイルはどうやって取り込んだら良いのでしょうか?
設定方法等載っているサイトがあれば教えて下さい
よろしくお願します
364デフォルトの名無しさん:04/08/16 18:20
MascotCapsuleを利用して個人で作成したアプリを、
課金配布しても大丈夫でしょうか?
やめとけ。
900iのなかではどれがお薦めですか?
SH
>>363
最近の若いモンは、Googleも知らんのか?
ttp://www.itmedia.co.jp/enterprise/articles/0407/15/news027.html
最近の若いモンは、GoogleもVivisimoも知っているが、
それ以上におせっかいで勝手に調べてくれる古いモンがいることを知っている。
調べて分かりそうなことは他人に任せて、それ以外のことに時間を使っているんだろう。
だな
やたら教えたがるバカがいるんだよ
相手の為にならないのにさ
>>370
そうやって若い芽を摘むことで、俺らロートルは稼ぎ続けていけるのさ
小僧が必死だな
オッサンも小僧も必死で結構。

          おばさんより
聞く香具師がカスなら、
答える香具師もゴミだな。
375デフォルトの名無しさん:04/08/19 15:51
えーっと
iAppliで文字列を表示したいんですけども

String text = "てすとてすとてすとてすとてすとてすとてすと";
みたいな変数がStringがあって
CanvasにdrawStringで書くので、5文字描画したら自動的に改行(表示座標の変更)したいんです

charAtって言うので直にLOOPさせて書こうとしたらdrawStringの引数がStringなんで
エラーになるし、と言うことで関数化したいんですけども、どうやったらいいですか。。

お願いしますです。
まずは5文字ずつの文字列に分割する方法を考えたらどうよ?
Stringにはlength()というメソッドがある。
drawChars
>>375
APIリファレンスのFont#getLineBreakというメソッドをみれ。
サンプルソース付きで説明してあるぞ
379デフォルトの名無しさん:04/08/19 17:21
>>376
>>377
>>378

回答ありがとうございます。

一回関数化してそこに始点、改行させたい文字数までのoffsetを渡して
返り値をforで回してなんとかできるようにしました。ありがとうございます。
String subStr( String str, int start, int end){
String text = "";
for(int i = start; i < str.length() && i < end; i++)
{
text += str.charAt(i);
}
return text;
}
>>375
for (int i=0; i<回数; i++) {
g.drawString(text.substring(5*i, 5*(i+1)), x座標, フォントの高さ*(i+1));
}
>>368
自分でも探したのですが見つけられなかったです。
助かりました。
ありがとうございます。
382デフォルトの名無しさん:04/08/19 21:42
アプリの実行中に特定条件でwebページに飛ばす事はできるんでしょうか?

可能なら方法を教えてください。。。
inputエリアに入力するときにデコメールの機能のデコレーションを呼び出すことは
できないんですかね・・・
>>375
なんかデジャヴを感じたが気のせいか…ホッ( ´Д`)-3
>>382
特定条件って何だかよくわからんが
IApplication.launch(LAUNCH_BROWSER, new String[] { url } );
じゃだめ?
386デフォルトの名無しさん:04/08/20 12:39
>>385
レスありがとうございます。

IApplication.launch(LAUNCH_BROWSER,new String[]{"http://localhost"});

とテストしてみたところ

static でない メソッド launch(int,java.lang.String[]) を static コンテキストから参照することはできません。
IApplication.launch(LAUNCH_BROWSER,new String[]{"http://apl.goalmania.jp"});

IApplication.launch(LAUNCH_BROWSER,new String[]{"http://localhost"});

とのエラーが出るのですが対処方がわかりません。。。すいませんが説明おねがいします。
387デフォルトの名無しさん:04/08/20 12:39
あああ、そこのアドレスはわすれてください・・・・
>>386
IApplication.getCurrentApp().launch(LAUNCH_BROWSER,new String[]{"http://localhost"});
389デフォルトの名無しさん:04/08/20 12:52
>>388

レスありがとうございます!

で、、、LAUNCH_BROWSER という定数のシンボルが解決できないって言われるんですけども・・・

ちなみにimportは

import com.nttdocomo.ui.*;
import com.nttdocomo.io.*;
import java.io.*;
import java.lang.*;
import javax.microedition.io.Connector;

です・・・おねがいします

C:\iDKDoJa3.0\apps\NetText2\src\confirm.java:69: シンボルを解決できません。
シンボル: 変数 LAUNCH_BROWSER
場所 : confirm の クラス
IApplication.getCurrentApp().launch(LAUNCH_BROWSER,new String[]{"http://localhost"});

>>389
LAUNCH_BROWSER はIApplicationクラスのクラスフィールドだ
詳しいことは開発ガイドとAPIリファレンスを嫁

その前にJava言語の入門書でちゃんと勉強するべきだが
禿同。DoJa以前にJavaの基本がわかってねぇ。
392デフォルトの名無しさん:04/08/20 14:55
SHシリーズの背面ボタンは何の宣言もなしに使えるのか?実機持ってないんでわからん…
基本が分かってないのに、
それなりにプログラムできるDoJaって素晴らしい。
394デフォルトの名無しさん:04/08/20 18:21
doja2.0~3.5を使用し、iアプリの作成をしているのですが、
スクラッチパッドの使用方法でつまっております。
スクラッチパッドに画像情報を複数保存し、size部、data部といった感じで利用したいのですが
例えば、1つ目の画像がxbyteでy〜zまで読み込む場合に取得したデータをそのまま
MediaManager.getImageに渡したいのですがどのように行えばよいのでしょうか?
携帯のコーディングはかなりの初心者ですので、簡単すぎる質問なのかもしれませんが
良い方法をご存知の方がいましたらご教授お願いいたします。
>それなりにプログラムできる
できてねーじゃんw

>>394
まず「オレ用語」を持ち出さないで説明して。
size部、data部って何を指してるの。
y〜zまでって何を指してるの。
(見当はつくけど質問は正確に意味が伝わるようにしないと)
396デフォルトの名無しさん:04/08/20 19:27
こんばんわ

DoJa3.5でiAppliを開発してますが、
ビルドして起動したんですが、仮想端末上のスクリーンが白黒のままでカラーになりません。

例として、DialogのsetBackground(Graphics.GREEN);
としてるんですが、白黒として表示されてしまいます。
仮想端末をカラー表示させるにはどのようにすればいいのでしょうか?
>>396
Graphics.GREEN
じゃなくて
Graphics.getColorOfName(Graphics.GREEN);
にする。
紛らわしいので注意。
Graphics.getColorOfRGB(Red, Green, Blue);
普通はこれで直接RGBを指定する。
398396:04/08/20 20:07
>>397
解決しました

GraphicsのGREENやAQUA、BLACKなどは単なるindex値なんですね。

なるほど。
本当に助かりました。
ご返答ありがとうございました。
399デフォルトの名無しさん:04/08/20 20:16
レイアウト・マネージャってiAppliにはない・・・???
もしかして
400デフォルトの名無しさん:04/08/20 20:28
あるだろうね…たぶん。
401385:04/08/20 20:38
>>382
漏れはメソッドの存在を示す意味で書いただけで、そのままコピペして動くことなんて想定してないんだが。
そうくるとは思わなかったw
まあ、がんばって、クラスメソッドとインスタンスメソッドの違いと、static定数の指定の仕方について調べてください。
Javaの基本まで教える気にはなれません。
というか、みな親切だねえw
>>399
HTMLLayoutくらいしかないけど。
403399:04/08/20 20:40
自分で配置するしか見栄えのよいレイアウトはないのね orz
>>394
スクラッチパッドのyバイト目からzバイト目までのデータについてgetImageしていってこと?
だったらscratchpad:///0のあとにposとかlenとか付ければいいよ。
詳しくは開発者ガイドをどうぞ。
405399:04/08/20 20:57
後もう一つ
iAppliってSocket通信は・・・できない?
406デフォルトの名無しさん:04/08/20 21:12
わかりづらい説明ですいません。
やりたいこと=================================
●WEBから複数の画像をダウンロードし、スクラッチパッドへ保存
●それを読み込む処理でMediaManager.getImageで画像をGETしたい。
やっていること===============================
●画像のURLごとにopenOutputStreamでposを設定し、その画像の数だけ実行している
●該当する画像を1.で設定したposを指定して読み込む
現象=========================================
●1つ目の画像しか保存できていない。
ソース=======================================
String Img[] = {"01.gif", "02.gif", "03.gif"};
for(int i=0; i<Img.length; i++){
 Cnt = (HttpConnection)Connector.open(MYURL+Img[i],Connector.READ);
 Cnt.setRequestMethod(HttpConnection.GET);
 Cnt.setRequestProperty("Content-type","image/gif");
 Cnt.connect();
 in = Cnt.openInputStream();
 out = Connector.openOutputStream("scratchpad:///0;pos="+len2);
 data = new byte[256];
 while(true){
  len1=in.read(data);
  if(len1==-1){
   break;
  }else{
   out.write(data,len2,len1);
   len2+=len1;
  }
 }
 in.close(); out.flush(); out.close(); Cnt.close();
 out = null;
 data = null;
}
407デフォルトの名無しさん:04/08/20 21:18
>>406

↑↑↑↑↑↑↑↑↑↑
len1,len2は初期値0です。
408デフォルトの名無しさん:04/08/20 21:45
>>406

自己レスです。
書き込みのほうは、解決しました。
後は読み込みです。
がんばります。
>>406
try-catchしてないとかこの際おいとくが、
>out.write(data,len2,len1);
ここはこうじゃないかな。
out.write(data,0,len1);
410デフォルトの名無しさん:04/08/20 22:31
>>409
レスありがとうございます。
おっしゃる通りでした。
p900iで実行テストしたところ起動時に
 ソフトに継続動作出来ない障害が発生しました
と表示されて起動出来ません。
DoJa3.5では普通に起動出来ます。
スクラッチパッドの読み書き当たりを色々変更したらこうなりました。
どこが悪いのか見当がつきません。
このエラーメッセージはこーゆーときに出やすい。ってのあったりします?
デジャヴ?
413デフォルトの名無しさん:04/08/20 23:14
ヤフーへ接続しようとしているのですが、
この下記の時点で例外が出てしまいます。
何が問題なのでしょうか?

HttpConnection hc;
hc = (HttpConnection)Connector.open("http://www.yahoo.co.jp/",Connector.READ_WRITE);
readUTFでscratchpadから文字列を読み込むとき
scratchpadの内容が0x00,00,00,00・・・のとき
UTFDataFormatExceptionが発生すると思ったのですが
キャッチ出来ません。
この場合読み込まれる文字列は何になるのでしょう?
ひょっとして 408=413=414 だったりする?
質問の低レベルさといい、書く口調といい。。
といいつつ、答えてしまうが:>
>>413
iアプリはダウンロード元としか通信できない。そんなの常識。
>>414
しらんが、正常終了してるなら、String.getChars()とかで調べればいいじゃん。
>>406
そういう恥ずかしいソースはさらさない方がいいよ。
変数の先頭を大文字で書いてる時点で、Javaプログラム書いたことありません、ってバレバレだからw
漏れだったら、こんな腐ったコード書いてくる奴がいたら、Sunのコーディング規約つきつけて全面書き直しさせるね。
418414:04/08/21 00:28
>>416
別人ですよ。と言っても>>413にレス出来るほどのレベルはありませんがw
レスどうもです、調べてみます。
>>417
おまい性格悪いな。
>>419
厳しいとは思うが、後でメンテすること考えたら、到底受け入れられん。
421413:04/08/21 00:41
なんだiAppliってアプレットなんだね。
じゃiAppletとしたほうがいいんじゃない?
まぁセキュリティー上の問題なのはわかるけど・・・。

じゃ、巷にあふれてる2ちゃんねるブラウザーのiAppli版は、
ソフトをダウンロードしたサーバへアクセスしてるのか。

iMonaを例にすると
(ケータイ・iMonaアプリ)→(iMonaサーバ)→(2ちゃんねる)

こういうこと?
>>421
アプレットより厳しいと思った方がいいよ。
ダウンロード元と、同じプロトコル、同じポート番号、同じホストでないと通信できない。
たとえばhttpsでダウンロードしたら、httpでは通信できない。同じホストでも。逆もそう。

iMonaのことは知らんが、原理的にはそれ以外に通信できないから、そうじゃないかな。
423413:04/08/21 01:12
仮にさ、サーバ経由でケータイ版2ちゃんねるブラウザーを作ったとしても、
もし、誰かがいたずらで犯罪的な書き込みをそのブラウザーでしたら、
実際に掲示板に書き込むのはサーバになるわけだから、
サーバを管理している人の責任になる・・・・・・・。

って、ケータイで2ちゃんねるブラウザーを完成させるのは無理ってことかw
イタタタタ・・・・だめぽ
あきらめた
424デフォルトの名無しさん:04/08/21 01:25
392
誰か教えて…
どの相手でも通信できるよ
>>392
すまん。わからん。
>>423
別にサーバの管理者はプロバイダ責任法で免責されると思うけど。
ある場面で、メニューを表示したいと考えたんだけど、
メニューが閉じられたら元の場面に戻りたいって時おまいらどうしてる?

俺はImageをcreateしてgetGraphicsしてそのGraphics使ってメニューを描画した後
setCurrentしてあるフレームでdrawImageするって方法を考えたんだけど

もっとスマートな方法無いですかね

おまいらの知恵を貸してくれ
>>428
おいらはず〜〜〜っと描きっぱなしなので、何も困らない。
皆、そうしてると思ってた。
>>428
メニューをわざわざImage作ってそれに描く必要はないのでは。
なぜならそのメニューを消すときは結局下地の画面を再描画するわけで。
それならメニューを直接画面に描画しても同じことかと。
431428:04/08/21 14:06
>>430
うーん、描画処理をメニュー側とメイン側でなるべく分離したいと考えてるんです
例えばgetImageをもつインターフェースをimplementsしたメニュークラスとメインクラスで
描画処理を行ってその後Canvas内でgetImage→drawImageみたいな
あ、下げ忘れましたすみません
メニューの表示、非表示のフラグたててリペイント。でえぇんちゃうの?
画面クラスを作って描画処理やイベント処理を委譲
eclipseでデバッグしようとしているんだけど、デバッグモードだと動かないんです。
スレッドは実行中になっていて、止めてみると
com.nttdocomo.ui.Launcher.main(java.lang.String[]) 行: 91
で動かないようなんだけど原因はなんなんでしょうかorz
436デフォルトの名無しさん:04/08/21 19:15
スクラッチパッドのテストプログラム作ったんだけど
DoJa2.0、3.0、3.5全部動くんだけど

実機テストするとまったく動かないんだけど、どうよ
話にならない
アプリ使ってデコメールみたいな機能を作って、掲示板にHTML形式のようなフォーマット
でログ送信できたりしないかな?
440435:04/08/21 22:04
>>438
そのとおりにやっているつもりなのだが…orz
441デフォルトの名無しさん:04/08/21 22:21
>>436さんとかぶってしまうのですが、
スクラッチパッドからの画像読み込みに関して、
DoJaでは読み込みできるのですが、実機だと
アプリエラーになってしまいます。

考えられる原因としてなにがありますか?
また、同様の現象を体験された方がいれば、
対処方法をご教示いただきたいのですが。

ちなみに実機のスクラッチパッドの中身って
確認できるものなんでしょうか?
でら初心者ですいません。
うるさいこと言うなよ、と思われるかもしれんが。
「DoJa」はDoCoMoが決めたAPI群の呼び名だから(DoJa-3.0、DoJa-3.5など)、
「DoJaだと〜、実機だと〜」は用語の使い方がおかしい。
「エミュレータだと〜、実機だと〜」または「DoJa-3.0エミュレータだと〜、実機だと〜」
が適切な言い方だろう。(>>441さんに限ったことじゃない)

ところで>>441さん。
問題点に関して提供されてる情報が不足しすぎだよ。
具体的なことが何も書いてないのでだれもアドバイスのしようもないと思う。
例えば読み書きの部分のソースを貼るとか。
jamファイルの内容もチェックしないといけないかもしれないし。

実機のスクラッチパッドの中身を覗く方法はない。
そのためにエミュレータがあると考えよう。
443デフォルトの名無しさん:04/08/21 23:48
>>441追加です。
もろもろ省略しますが、
スクラッチパッドへOUT
Connector.openOutputStream("scratchpad:///0;pos=100");
スクラッチパッドからIN
MediaManager.getImage("scratchpad:///0;pos=100");

書込みと読込みのクラスは別々で書込み側から読込みオブジェクトを生成しています。
書込んで終了メッセージのみの表示で実行すると正常終了。
書込んで保存した画像を取得しようとするとエラー。
なので書込みはできていると思うのですが・・・。
jamファイルは
UseNetwork = http
LastModified = Sat, 21 Aug 2004 22:06:18
SPsize = 25000
AppClass = outputimage
UseBrowser = launch
AppName = OUTPUTIMAGE
PackageURL = outputimage.jar
AppSize = 6250
な感じです。

エミュレータでは動作しています。
>>442さん。
ご指摘ありがとうございました。
他に何か必要な情報があれば、追加します。
444442:04/08/22 01:00
>>443=441さん
そりゃまあスクラッチパッドへのアクセスはそのようにしか書かないので
前後を省略して提示されても参考にならないが^^;
エラーメッセージが出るならそれをそのままここに書いてみて。誰か分かるかもしれない。

画像がらみでエミュレータで期待通りの動作をして実機で失敗する場合、よくあるのは容量の問題。
エミュレータはPC上なので画像のファイルサイズが大きくても読み書きできるが、
実機ではあまりに容量(ファイルサイズ)の大きい画像はメモリ不足で展開できない。
画像の縦横の大きさが関係する場合もある。
例えば504iでは画像の横幅は○○ドットまで、という制限のある機種があった。
また最近ではN900i/P900iで400KB問題なんてのもあったことだし。
そういえば441さんが試してるDoJaのバージョンや機種も分からないな。

あとは何かしらのタイミング問題で、実は危うい書き方してるんだけどエミュレータ上では
たまたまうまく動いてるって状態とか。
try{}catch{}でエラー処理してるか、ちゃんとclose()してるかとか、そういうところをチェックかな。

…と、情報不足なりになかば当てずっぽうで書きましたが。
必要な情報は
・エラーの正確な内容
・エラーの出る正確な場所
jamにAppTrace = onを追加するか、Dialogクラスを使ってエラー内容を画面に表示すればいい
doja.exeとdoja_g.exeってなにが違うんですか?
doja.exe:通常版
doja_g.exe:デバッグ機能満載版

詳しいことはエミュのリリースノートとユーザーズガイドを読んでね
448デフォルトの名無しさん:04/08/22 21:34
com.nttdocomo.io.ConnectionException: Scratchpad already opened for output

起動時にこんな例外が出るんですが。
どこを探してもおかしいところが分かりません。
複数の箇所でスクラッチパッドで読み書きしてるのですが
close()しわすれもないんですがどういう事ですか?

この例外ってConnection.openDataOutputStream()でオープンした後
close()でクローズしないまま更にオープンしようとしたって事でよろしいの?
iAppliから他のネットワークへ接続することがどうして駄目なの?
わからないよん。
>>449
セキュリティの関係じゃないの?
public static final MediaImage getImage(byte[] data)
これに渡せるdataのフォーマットはなんですか?
>>451
getImage(String url) で取得できるフォーマットと同じ。
間違いないのはGIFとアニメGIF。
機種によってはJPEGも大丈夫かも。
>>452
どうも。
エミュ上だけどBMP試してみたらだめだった。
Textureでは読みこめるのに・・・
>>453
BMPは駄目だと思う。
textureとして使えるのがむしろ例外。
>>454
そうですか。
GIFやJPEGのデコードに比べたらBMPの読みこみなんて
楽勝だろうに・・・
>>448
エラーメッセージの意味は
「スクラッチパッドはすでに書き込みモードでオープン済みですよ」。
間にクローズ処理をはさまずにオープン処理を立て続けに呼び出しちゃったってこと。

>>452
DoJa-1.0はgifのみ。
DoJa-2.0以降はgifとjpgが読み込み可能。
開発ガイド詳細編のMediaImageの説明に詳しく書いてある。

>>455
Imageとtextureでは要求事項が違うから扱うフォーマットが違う。
>>455
楽勝なので、どうしても欲しければ自力で読み込む
>>457
Graphics#setRGBPixels(int x, int y, int width, int height, int[] pixels, int off)
で書きこんでみたんだが、これ遅すぎ
459デフォルトの名無しさん:04/08/23 03:14
質問です。
実機では問題なく、エミュレータでのみ発生します。

メインループの内容が

Canvas#getKeypadState() でキー状態取得

画面クリア

0キーが押されていたら ImageStore#selectEntry()で画像選択
(テストプログラムのため、そのあと特に何もしない)

キー内容表示

というプログラムを書いたのですが
1回 ImageStore#selectEntry() を呼ぶと、
次のループから0キー押してもいないのに getKeypadState() では
押しているというデータが返ってきます。
(selectEntryのあとキー離したというイベントが送られていない?)。

実機だと特に問題は起きないのですが、とても不便なので
回避する方法わかるかた教えていただけないでしょうか?
http://gamdev.org/up/img/1085.zip
ソースも一応うpしておきました。
どなたかよろしくお願いします。
>>459
どこがソースなのかと
>>459
とりあえず、ループの廻し方を変えたほうがいいんじゃないか?

Canvas#runの中でぐるぐる回したほうがええで。
あと、getGraphicsは毎回呼ばない。
エミュのバグじゃないの?
キーの取り方を変えるしかないと思われ

つーか、「キーが押されたら〜する」場合はprocessEvent()を使うべき
1/60[s]の世界ならgetKeypadState()でもいいけど、iアプリは遅いからね
>>459
paintに何も書かれてない!
paintメソッドは空にする
これiアプリでゲーム作る時の常識
465ド級の初心者:04/08/23 14:27
私はプログラミングとか全くやったことがないのですのど、
こんな私でもしっかり理解できる様なiアプリ【java】のプログラミングのやり方を説明してくれる本を紹介して下さい。
よろしくお願いします。m(_ _)m
>>464
うぁ、常識だったのか orz
>>465
本屋で自分にあった本さがすのがいいかと
Webでもいっぱい転がってるのでそれ検索汁
>>465
iアプリの作り方やAPIの使い方とかより先に、プログラミングの基礎知識を身につけないと。
iアプリ用の本を探すのではなくて、まずプログラミング初心者用のJavaの本を読むべき。
Javaの本といっても多岐に渡るので、その中ではできればケータイJava用の本を
(「携帯Java」や「MIDP Java」とか書いてある)探してみて。
469459:04/08/23 16:55
>>461-462
ありがとうございます。

MainCanvas#processEventに処理を移して
イベントドリブン型にもしてみましたが
余計におかしな自体(他のボタンを押しているのに
選択画面が表示されたり)になりました。

結局、MainCanvas#processEvent でキー状態を変数に入れて
その変数を見て処理を行うようにしました。
その上で、selectEntry 処理の後は押されたキーの部分だけフラグを
下げて対応しました。

一応、同じ問題で困る人が居るかもしれないので
修正版もうpしてみました。
http://gamdev.org/up/img/1089.zip
>>459
run()はスレッド起動で処理する内容を記述するための特別な意味を持つメソッドなので
for()文で回すような使い方なら別の名にすること。(Javaの作法、慣例)

getKeypadState()を含むループが1(ms)間隔で処理されている。
これは1(ms)間隔でキー入力を監視しているということだから、
1回のキー押下でも1(ms)以上押していたら、ループ2周目以降の
getKeypadState()が「キーが押されている」という反応を返してくるのは当然。

人間の指先操作で100分の1秒速さでキーを押して放すことは無理でしょう。
キー状態を監視する間隔をもっと広げれば(例えば100ms)とりあえずの対策にはなる。
しかしユーザーは何秒もキーを押し続けるかもしれないので、これでは根本的な
解決にはならない。

まとめ。
キーをずっと押し続けていることを監視するならgetKeypadState()を使うが、
1回ポンと押す(押して放す)ことを検出するならprocessEvent()で取得すること。
471470:04/08/23 17:05
>>470の書き込みは>>469を読む前に書きました。
今、>>469のソースを見ました。

>>459
processEvent()のparamで取得する値の使い方を間違えている。
getKeypadState()のように (1 << param)とやらない。
processEvent()のparamでは キーに対応した Display.KEY_?? という定数が取得できるので
押されたキーの判定は
>if((key_ & (1<<Display.KEY_0)) != 0)
ではなく
if (key_ == Display.KEY_0)
とする。
key_はビットフラグとして使うのではなく、押されたキーの値を1つ保持する変数として使う。
>>447氏の言うリリースノートってのがどこにあるのか分かりません。
誰か教えて下さい
473470:04/08/23 17:10
>>470の書き込みで質問の回答とは関係ない部分だけど訂正
× 人間の指先操作で100分の1秒速さで
○ 人間の指先操作で1000分の1秒の速さで
1msのことを言っているので。
>>472
ユーザーズガイドはあったのか?
どちらもエミュと一緒に入ってる

無ければドコモからエミュをダウソし直せ
477472:04/08/23 19:36
>>475
サンクスです。ダウンロードした当時ワケが分からなかったので捨ててしまっていたようです。
478ド級の初心者:04/08/23 21:50
>>467 >>468 >>474 >>476
ありがとうございました〜。もう少し進歩したら又来ます〜
質問です。(Doja3.5)
サブドメインが違っていたら通信できませんか?

aaa.abc.com iアプリダウンロードサーバ
bbb.abc.com 通信したいサーバ 1
ccc.abc.com 通信したいサーバ 2
480デフォルトの名無しさん:04/08/24 22:53
あいアプリからSDの読み書きとかできるの?
>>479 できねぇ。当該サイトのみ。
>>479 できねぇ。画像ファイルとしてラッピングする方法はある。
>>479
>>422
直前100レスくらいは読んで質問してくれよ。
483479:04/08/25 00:06
ご回答有難う御座いました。
>>422と同じ意味だとは思いませんでした。
>>483
aaa.abc.comとbbb.abc.comはどうみても「同じホスト」ではないと思うんだが…。
>>484
479には同じに見えたんだろ
プロトコルとポートとURLのFQDNが一緒ならば、別IPどころが別ホストでもかまわないわけだが
Fully Qualified Domain Name

TCP/IPネットワーク環境において、
ホスト名に続けて、ドメイン名まで省略せずにすべて指定した記述形式のこと。
質問です。
CLDCでサポートされていない、java.io.FileInputStream、ObjectInputStream等は
Doja3.0で使うことは出来ないのですか?
できません
490488:04/08/25 14:05
>>489
やっぱり使えませんか。レス、ありがとうございます。
491デフォルトの名無しさん:04/08/25 20:47

教えてください。
iアプリから携帯に登録されている着信音をならすことは
できるものなのでしょうか?
よろしくお願いします。
492デフォルトの名無しさん:04/08/25 21:29
教えてください。
iアプリから携帯のキー操作音量を設定することは
できるものなのでしょうか?
よろしくお願いします。
>>486
まあ、そりゃそうだな(^^;
>>491
無理。
>>492
こっちも無理だったと思う。もしかしたらオプションAPIにあったかも??
495デフォルトの名無しさん:04/08/26 01:23
端末時間をYYYYMMDDHHIISSの形式で、Stringで取得するにはどうしたらいいでしょうか?
496デフォルトの名無しさん:04/08/26 01:29
カレンダー。
iアプリの質問ってことでもないな。
CLDC 1.0 のAPIリファレンスでCalendarクラスの説明を読んでくれ。
>>491
iアプリDXの「登録データ利用機能」を使えばできる。
>>492
こっちはDX使ってもできるかわからない。
499デフォルトの名無しさん:04/08/26 22:52
505,FOMA900iシリーズのハードスペックを書いてあるサイトを教えてくれませんか?
特に、使用しているCPU、グラフィックプロセッサ、サウンドプロセッサが知りたいです。
500491:04/08/26 23:39
>>498
着信音は出来ない。自分でダウンロードした着信音を登録したりはできるけど。
画像と勘違いしてる?
501494:04/08/26 23:40
>>500 の 491 は 494 の間違いです。スマソ。
>>499
えらく、コアな初心者だなw
>>499
業務上知る必要があるならサイト探すより相手メーカーの担当者に連絡した方がいい。
通常、そういう情報がハードメーカーから外部へ告知されることはない。
ユーザーが知る必要がないのはもちろんのこと、
ソフトウェア開発側でもチップレベルでハードに依存したアプリを作るわけではないから。
業界ニュースなどで、「A社が今度発売する端末にB社のCというチップを採用することを
決定した。このチップの性能は〜」のような形でたまたま知る機会はあるかもしれないが。
ダウンロード中を表示するキャンバスを
Runnableをimplementsして別スレッドとして
立ち上げてるんですが、何回もダウンロードを繰り返すと
スレッドが溜まってメモリーエラーが発生します。

Runnableクラスを継承した場合の
スレッドの停止の仕方がわかりません。
よろしければご教授お願いします。
ダウンロード中を表示するキャンバスを
Runnableをimplementsして別スレッドとして
立ち上げてるんですが、何回もダウンロードを繰り返すと
スレッドが溜まってメモリーエラーが発生します。

Runnableクラスを継承した場合の
スレッドの停止の仕方がわかりません。
よろしければご教授お願いします。
>>504
>スレッドが溜まってメモリーエラーが発生します。
の意味がよく分からん。ダウンロードの度にスレッドを生成しているってことか?
だったらこうしてみてはどうか。

run()の中はwhile()で回しておき、
ダウンロード要求があるときはフラグなりラベルなりをセット、
それでwhile()の中でそのフラグなりラベルなりを判定してダウンロード処理を開始、
とすれば別スレッドは最初に1つ生成しておくだけでいい。

ダウンロード処理が不要になったら(アプリの終了時かもしれないが)
while()を抜けて、run()も抜けるようにする。
スレッドを破棄するにはrun(){…}を抜けるだけでいい。
ちなみに1度終了したスレッドを再利用することはできない。
507506:04/08/29 18:56
>>506で「ラベル」って言ってるのは、適当な定数宣言をして、
それを状態を表す値として使うって意味で。(ってわかりにくいかな?)
質問させてください。

最近のi-アプリのRPGはケータイの画面が大きくなっているせいか、
上下左右に常に引き伸ばして表示しているようなやつが
多いみたいですが、
その処理はどうやって実現しているのでしょうか?

方法自体はいくつかあると思いますが、一般的に
どういう処理が使われているのかなーと思いまして。
>>508
普通はどうやってるのかは知らんが、こんなサービスもある
ttps://gwrapper.klab.org/sindex.html 法人向け有料サービス(1アプリ10万円)

漏れの場合は2倍に拡大したGIFファイルを用意して、
描画、画像サイズ、フォントサイズの部分だけ変えてる
ロジックには一切手をつけない
>>509
ウチも同じだな。多少描き直すけど。

あと、VかEZは自動で拡大するんだってね。
いいなぁ。どんな画質か知らないけど。
511504:04/08/30 00:20
お返事どうもです
>の意味がよく分からん。ダウンロードの度にスレッドを生成しているってことか?
そのとおりです。
アドバイスのように1つだけあらかじめオブジェクトを生成しておいて
フラグを見てそれを使いまわす用に修正しまたら問題が解決しました。

また、Runnableを継承してないCanvasでも都度生成していると
メモリーを食いつぶしているようなんですがそんなもんでしょうか?
特にVisualPresenterとか使ってアニメGIF再生するPanelなんかは
ガシガシメモリ食いつぶしてるようなんですが。
gc()発動しても開放されずにドンドコメモリ食ってる模様。
これってDoJa仕様っすか?
Canvasはあらかじめ作って使いまわさないとダメ?
ツカ、Canvas複数使ってる時点でダメなんだろか。。。
>>511
MediaImageとかはdispose()しなきゃだめだよ。
そういう問題じゃなくてメモリ食いつぶしてるというなら、
きっとどっかで、そのオブジェクトがroot setから到達可能なんだと思う。
513504:04/08/30 01:37
それだ!!
MediaImage#dispose()

有難う御座います。
早速試してみます。
514504:04/08/30 01:55
MediaImage#dispose()ビンゴでした
ちゃんと明示的に指示しないと開放されないんですね
有難う御座いました。

ちなみにroot setうんぬんは何処からか参照されていて
gcされないってことでしょうか。

しかし、漏れみたいなのがiアプリ作ってていいのだろか
トホホ
515デフォルトの名無しさん:04/08/30 02:45
>>514
俺の手の届かないとこにあるなら作ってもいいよ。
516504:04/08/30 02:59
>>515
スマンよくわからん
指定の時刻に指定のサイトへ自動的にアクセスするアプリって作れる?
>>517
開発ガイドを全く読まないで質問するのはやめよーぜ
できないのか?
>>517
電源OFFになってる場合とか
ちょっと考えれば無理だってわかるだろう…
>>517
iアプリはダウンロードしたサイトとしか通信できない。
法人がドコモに申請したiアプリDXならその他のサイトとも通信できる。

考えてみ。勝手アプリで自由自在に通信できちゃったら大変なことになるだろ。
悪意あるアプリが有料コンテンツにアクセスしまくってウィルスもばらまき放題だ。
>>517
やりようによったら作れる
>>521がいってるように直接はムリだが自分とこの鯖経由にすればOK

あとは、待ち受けアプリにしたらいい
523ケン ◆KENNYY/YXo :04/08/30 15:58
(ケン ´・∀・`)ヌルポ
524デフォルトの名無しさん:04/08/30 16:53
ガッ
525デフォルトの名無しさん:04/08/30 21:39
drawStringで文字列を描画するときに、改行するには?
¥nを入れるとスペースになってしまいます
>>525
改行コードなんてないよ。
自力で適当な長さで文字列を区切って、行を変えた位置に続きの部分を描画する。
これの繰り返し。

やばい!こっから先はFAQの予感!
527デフォルトの名無しさん:04/08/30 22:11
ぬるぽコードを挿入するといいよ
528改行:04/08/30 22:16
レスありがとう
その方法をかんがえてみます、
IMEで入力する改行は認識されないってことか。
メモメモ...
Display.setCurrent(myCanvas)とすると、myCanvas内のpaint()が呼ばれるように
Panel型のインスタンスを指定したときに画面を再描画したいんですけど、どうしたらよいでしょう?
setCurrent()で呼び出されたときに発生するイベント、または呼び出されるメソッドみたいなのってあります?
531デフォルトの名無しさん:04/08/31 02:11
セットカーレントで呼び戻せばいいんだよ。
>>530
Panelは勝手に再描画されるからイベントも何もないよ。
>>514
解決したみたいでよかった。

> ちなみにroot setうんぬんは何処からか参照されていて
> gcされないってことでしょうか。
そうそう。そういうこと。
root setはGC用語。意味を知りたかったら、ちょっとぐぐれば解説がでてると思うよ。
>>529
どこからそんな結論がΣΣ(゚д゚lll)
535530:04/08/31 19:26
>>531
>>532
ありがとうございます。
setTextとかでイチイチやらないといけないのかと。
簡単なチュートリアルが載ってるとこ無いですか?
>>536は何? どのレス番の人がどのレス番に対して言ってるの?
>>536
DoCoMo
ボタンやテキストボックスみたいなGUIを使った
サンプルプログラムのソースは無いでスカ?
最低限ぐぐろうぜ。それでもみつからなかったら
「●● ××」というキーワードで探したのですがダメでした。
とか言った上で聞こうぜ。

多分 アプリ doja 初心者 あたりででるだろ
ぐぐっても書籍の紹介ばっかなんですよう
書籍を除くよう指定すればいいかも。
http://www.google.co.jp/advanced_search?hl=ja
>>539はアプリ開発の初心者どころか検索もできないパソコン初心者。
「"iアプリ" テキストボックス サンプル」でぐぐって一番上に出てくるのは何だよ?
コンポーネントの配置位置の調整の仕方がわかりません。
>>544
できません。
>>545
ウソヲオシエルナ

>>544
Component#setLocation(int x,int y);
このくらい自分で調べられるようになりなさい!
gifアニメは高レベルAPIでしか再生できないの?
できない
拡張APIのGraphics2を使うと一枚毎に取り出せるようなので
gifのヘッダからディレイタイムを取り出してスレッドスリープと
組み合わせて描画すれば出来るはず。
それを再生ってよんでいいのかな・・
最初からばらしておいたほうが(;´Д`)
返事ありがとうございます。
やはり一枚ずつ描画していくしかありませんか…
できればスレッドは使いたくないので、
ショートタイマー+再描画でがんばっていこう…
どうしても、少数演算をしたいときみんなどうしてます?
自作?どっかから拾ってくる?
いい、アルゴリズムあります?
>>553
ふつうに固定小数点で。
>>553
sinとかcosとかsqrtとかやりたいなら、数表用意するのが楽だと思う。
556553:04/09/04 09:31
すいません、意味が分かりません。
>>554
固定少数って普通に整数(int)のことだと思ってましたけど、どういうこと?
>>555
sqrtを使いたいんですよ。そのアルゴリズムは探したんですけど、
整数だと√4も√8も答えが2になってしまって。誤差がでかすぎるので・・・。
数表なるものはどーゆーもの?予め答えを複数用意しておいてそこから探し出すって事?
>>553
1000倍して計算してみろ
ワラタ
553はアルゴリズムとか以前に中学校の数学からやり直せよ
質問なのですが、
P900でHTTPや赤外線で取り込んだ動画像(mp4)を
ネイティブのマルティメディアフォルダに保存できないのでしょうか?
jpegなら出来るようなのですが…
> 固定少数って普通に整数(int)のことだと思ってましたけど、どういうこと?

近所の小学生に聞け

> 整数だと√4も√8も答えが2になってしまって。誤差がでかすぎるので・・・。

そこで固定小数の出番ですョ

> 数表なるものはどーゆーもの?予め答えを複数用意しておいてそこから探し出すって事?

そんな感じ
「サインテーブル」とかでググれ
ま、少数と小数の区別がついてないお子様だからしかたない。
563555:04/09/05 00:56
>>556
数表についてはその通り。
int sqrt[] = new int[] { ...... }
として、sqrt[i]するとiの平方根の値が手に入るように配列の値を予め設定しておくの。

固定小数は、、、
たとえば、下位10ビットを小数部として使うなら、1024を1.0と換算して、無理やり整数で表すこと。
2048が2.0、1536が1.5になる。
この場合、足し算と引き算は、普通の+と-で計算できるのがメリット。
掛け算と割り算もちょっとの工夫でできる。
564553:04/09/05 17:46
なんだか、散々叩かれてますねw
よく分かりました。皆さんありがとう、
数表については小数の平方根も考えると大変なので√a=√10000a/100
みたいな感じで計算してみました。
固定小数の乗除はシフト演算子を使って工夫ですか。
乗除の計算に関しては専用のメソッドを作った方がすっきりしそう。
色々試してみます。
メソッド作って呼び出すメモリの余裕があるなら、固定小数点クラス作れば?
>>564
小数の平方根考えるのが何で面倒なんだ。。
J2SEとかperlで、forループまわして平方根の値を標準出力にでも出すプログラム書いて、
ぺたっと貼ればおわりじゃないか。
DoJa3.5を使って製作してるのですが、ビルドが問題なく完了した後、付属のエミュレータ画面で動かそうとすると、
「ALERT: Maximum byte code length (32kB) exceeded」というアラートが出てしまい、アプリは起動しません。
これについて、どなたかわかる人、いらっしゃいましたら、ご教授ください!
>>567
たしか、1つのメソッドに書けるコードの量の上限があったはず。
1000行のメソッドとか書いてないですか?w
569567:04/09/05 23:07
あっ!
えーと、exe()っていう1メソッド、4500行超えです…。
(シュミレーションゲームのアプリつくってて)「switch-case」で、500caseぐらいになっちゃって…。
何か、良い対処方法、ありませんか?
>>569 方法も何もメソッドを分割。りファクタリングツール
もってないの?
>>569
メソッドを分けるしかないだろう・・・
>>569
メソッドわけるか、適当なデザインパターン使って、switch-caseを隠蔽してしまうか。。
573デフォルトの名無しさん:04/09/05 23:30
iアプリをブラウザ(JavaApplet)で実行しているHPを見かけたのですが
なにか簡単にできる方法(ライブラリ)はあるのでしょうか?
>>573 参考までにどこのページ?
575573:04/09/06 00:32
↓のHPで見かけました
ttp://www.dwango.co.jp/kamone/stadium/stex/stex.html
ttp://skycgi.zero.ad.jp/~zaj41301/java/i/id2/id2_pc.html
ttp://www5.airnet.ne.jp/taku/latir/latirApplet.html

見かけだけで判断すると、どれも違う仕組みっぽく見えますね。
個人で移植しているのでしょうか。。。
>>575
一番下のは作者が掲示板に何か書いてたぞ。
ラッパがどうのこうの。
>>575
単純にiアプリのゲームをアプレットに移植してるんじゃないの?
自動でマナーモードにするアプリがほしい!・・・けど無理ですよね?
だから、「無音の着信音と普通の着信音を切り替えるアプリ」を作りたい!

携帯内の着メロを着信音に設定するアプリは不可能だけど、
アプリ内のmldを着信音として鳴らすのは可能なんですよね?
それなら、アプリで○時に着信音が無音の物になって、○時にその設定が切れて普通の物になる。
というアプリなら実現可能じゃないでしょうか?
それとも、それだと2つの着信音がなるという事になるんですか?

まだ、javaもろくに知らない素人ですが、よろしくお願いします。
どんな資料を参考に、できるできないを判断してるんだか。
580573:04/09/06 10:50
>>576-577
スマソ、掲示板見てなかったorz
ラッパクラスを作ったようなことが書いてあるなぁ ('o`;)
やっぱり自分で作るしかないのか
誰かフリー(又は有料)で提供してる人は居ないのか
>>580
コーディングにもよるが、あまり変えなくても移植できたりするぞ。
特別なことしてなければ、表示周りと入力部分の関数を自作するだけでいい。
>>579
資料はネット上に実際にあるアプリなどを検索して・・・
自分なりに解釈した結果です。

アプリで携帯の中身に直接アクセスできる部分ってのは限られててその中に着メロってのが無い、
アプリで着信音に設定してるアプリ(いろメロべんりアプリ、シーマンなど)があったからそれは可能、
と思ったのですが・・・やはり違ったのでしょうか?
ついでに個人が作ってると思われるアプリにもそういうものがあったのでやっぱ可能だとも思いました。

「できる」か「できない」かだけでいいので教えていただけないでしょうか?
583567:04/09/06 14:20
>570-572

アドバイスありがとうございます。
ちなみに、メソッド内の行制限については、DoCoMo提供のPDF書類に載ってるんでしょうか?どちらに掲
載されてたか、覚えていたら教えてください。
同じように、public void start { } の中は、何行まで、とか制限あるんでしょうか?(いわゆるプログラムの行制限)


switch-case内を分割しようとしてるんですけど、case内の「処理」の部分を別のメソッドにしても、
例のアラート(レス567のやつ)は出っぱなしなんです。

どうしたらきれいに分割できるんでしょうか??

おわかりになる方いらっしゃいましたら、お願い致します。
584573:04/09/06 14:20
>>581
入出力系だけでも沢山ありそうな気が。。
通信、スクラッチパッド、リソース、コンポーネント、サウンド...。
レイアウトマネージャ関係の置き換えが頭イタソ。
真面目にラッパクラスを作ったらカナリ大変そう。
ソース二重管理を覚悟してアプレット版を作るのが
とりあえず近道なのかな。
>>583
行数の制限じゃないだろ。バイトコードが32KBを超えたって警告なんだから
32KBってのはJ2ME CLDCの制限じゃないの?知らんけど

>switch-case内を分割しようとしてるんですけど、case内の「処理」の部分を別のメソッドにしても、
>例のアラート(レス567のやつ)は出っぱなしなんです。

複数のcaseを1メソッドにするとか
つーか、アラートが出る前と後のソースをみて自分で考えろ
>>582
公式サイトじゃないと着メロ変えるのは無理じゃないの?

>ついでに個人が作ってると思われるアプリにもそういうものがあったのでやっぱ可能だとも思いました。

なんてアプリ?
できるわけがない。>>582の勘違い。
>>582=578
君は調べ方を根本的に勘違いしている。
希望する機能のアプリが開発可能かどうかは開発用の資料を見て判断するもの。
DoCoMo公式サイトから開発ガイドをDLして熟読せよ。
思い浮かぶ疑問は大抵これだけで解決する。
初心者だろうがベテランだろうがまずは関連資料を読むことからスタートだ。
そして書いてある意味が分からない、書いてない、などの時は遠慮なく質問せよ。
できる、できないくらい教えてやれよ。
できないのに調べるのは時間の無駄だ。
回答集があるのに質問&回答を繰り返す方が時間の無駄だ。
今の内に資料見て調べられないようなら、どうせ完成前に挫折するよ。
592568:04/09/07 00:57
>>583
気になったので、JVM specを読み返してたんだけど、メソッド本体の上限は64KBだね。
ttp://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#88659
> The amount of code per non-native, non-abstract method is limited to 65536 bytes
32KBってのはCLDCというか、KVMの実装上の制限かも。
もしかしたら、メソッドの上限じゃなくて他の上限かも。
まあ、いずれにしてもコードサイズがでかすぎることが原因なのは変わらないと思うが。
593567:04/09/07 07:54
みなさん、ありがとうございます。
いくつかのcaseを別のメソッドにまとめる方法は、試しても同じアラートが出ます。
何の上限なんでしょうかねー。32kってのは。

しかし、いずれにせよ、コードサイズがでかいってことで認識して、部分部分を別クラスにして、コード組み替えてるところです。
別クラスを読み込んだ時点で、色々な変数(パラメータ)が初期値(未設定だから0なんですが)に
戻っちゃうのが、やや難ですね。スクラッチパッドがんがん多用して『書き出し←→読み込み』やり
まくる方法でプログラム組んでってますけど…ほかに簡単な方法なんてのが、ひょっとして、
あったりするんでしょうか?(とりあえずはこれで出来てるから、いいっちゃぁいいんですが…)
>>593
> 別クラスを読み込んだ時点で、色々な変数(パラメータ)が初期値(未設定だから0なんですが)に
> 戻っちゃうのが、やや難ですね。

どんなバカなVM使ったらそんなことが起きるんだろうか・・・
結局、そんなアラート出る時点でコーディングがヘタなだけにしか見えん。
Java勉強しろ。
Classサイズにも制限があった気がするんだが、それじゃないか?
596デフォルトの名無しさん:04/09/07 09:54
>>595
1クラスが100KB超えてもエラーにならないからiアプリなら問題ないと思われ

32KBは起動時のベリファイの制限じゃないのかな
トレース機能全部ONにして実行してミソ。時間かかるけど
確か巨大な配列を定義しても32KB制限に引っかかったような気がする
>>567さん
switch-caseで500caseくらいとかちょっと考えられないし、>>593の書き込みとか
見てて思うんだけど、プログラムの設計なしでいきなり組みに行ってるでしょう?
オブジェクト指向のデザインパターンに沿ってクラス図を書けなんて言うつもりは
ないけど、せめてブロック図やどんな機能を持たせたクラスが必要かくらいは、
メモ程度でもいいから書いた方がいいよ。
慣れてる人ならともかく初心者がおぼろげなイメージだけで組んでもまたハマるよ。
598567:04/09/07 15:34
みなさんありがとうございます。
がんがります!
>>593
>別クラスを読み込んだ時点で、色々な変数(パラメータ)が初期値(未設定だから0なんですが)に
>戻っちゃうのが、やや難ですね。

毎回newしてるのか・・・
staticなメソッドとか、Singletonって知ってるか?
600デフォルトの名無しさん:04/09/07 19:33
appハ実行アプリのインスタンス


thread = new Thread(app);
thread.start();

でエラーにナル

thread = new Thread();
thread.start();

だとエラーにナラナイ


ゲンインオイエテクダサイ
appがRunnableを継承してないんじゃないの?
602デフォルトの名無しさん:04/09/07 19:56
スーパークラスがRunnable継承シテイナクテ

スーパークラスをextendsしたサブクラスがRunnableを継承してイルノハダメデスカ

スーパークラスでRunnableをつけるとrun()を実装していないと怒られ

サブクラスのみでRunnableを継承するとアプリのインスタンスがシンボルが解決できませんとエラーデス

オシエテクダサイ
603デフォルトの名無しさん:04/09/07 20:29
解決いたしましたコレで僕もマルチスレッドプログラマーアヒャヒャヒャ
質問スルナラ読ミ易ク書イテクレw
>>593
コンストラクタに引数渡せることは知ってるか?
いや、たぶんそういう問題じゃないと思う。
extendsしてたりして
初歩的な質問ですいません
アプリでスクラッチパッド全領域を0クリアしたいのですが
スクラッチパッドの領域サイズを取得する方法がわからなくて悩んでます。
知りたいのはADFのSPSizeの値です。
ご存知の方、よろしくお願いいたします。
ムリ。
初回起動時にjamでも読むとか、AppParamに書いておくとか、
代替手段は色々ある。
後writeメソッドの例外(SCRATCHPAD_OVERSIZE)を受け取るとか。
SPSizeなんか自分で指定するからわかるだろ?
>>609
回答ありがとうございます!助かります!
やはり無理でしたか。
SCRATCHPAD_OVERSIZEを取る方法も考えたのですが
1バイトずつ0を書き込んでいかないと閾値がわからなそうなので
AppParamに記述することにします。
う〜ん残念。

この調査中にSystem.getPropertyで取得できたりしないかな〜って
思ってどんなシステムプロパティがあるのか調べようとしたのですが
System.getProperties()メソッドがないので断念しました。
#どんなシステムプロパティがあるのかな。
>>610
ツッコミありがとうございます。
数値の二重管理が嫌なだけです。
613デフォルトの名無しさん:04/09/08 19:35
同時再生音数についてなのですが、
505に関しては以下のサイトに書かれてあったのですが、
http://www.saturn.dti.ne.jp/~npaka/ibook2/izon.html

DoJa2.0、DoJa2.1、DoJa2.2、DoJa3.5系の同時再生音数が
分からなくて困っています。

誰か教えていただけないでしょうか?

>>611
>SCRATCHPAD_OVERSIZEを取る方法も考えたのですが
>1バイトずつ0を書き込んでいかないと閾値がわからなそうなので
バイナリサーチを応用すればすぐに分かるんじゃないの?
>>608
void zero_flush(int index) {
try {
InputStream in = Connector.openInputStream("scratchpad:///"+index);
int len = in.available();
in.close();
OutputStream out = Connector.openOutputStream("scratchpad:///"+index);
for (int i=0; i<len; i++) out.write(0);
out.close();
} catch (IOException e) {}
}

こんなんでどうかな?
booleanにして例外がでたらfalseを返すようにした方がいいかもしれない。
自前で配列にサイズ書いたほうがサイズ小さくて済むと思うけど、
わざわざ2回も書くのは確かに嫌だよね。
数字打ち間違える可能性もあるし。
InputStream#available()
>InputStream クラスの available メソッドは常に 0 を返します。
こう書いてあるから駄目なんじゃね?
617615:04/09/09 19:23
>>616
確かに書いてあるね。
一応エミュでは正常に動作したよ。
実機は不明。
618615:04/09/09 19:32
よく考えたら常に0を返すのはInputStreamがabstractだからだね。
619608:04/09/09 20:09
>>615
レスありがとうございます!
なるほど、availableを使う手があるのか〜。

ちょっと気になるのは
availableがスクラッチパッドを対象としたときに
必ず終端までのサイズを返してくれるかってところです。
リファレンスに
「ブロックされることなく読み込むことができるバイト数」
って書かれていますが
きっとスクラッチパッドはブロックされることないんですよね(?)
#そもそもブロッキングの可能性があるのは通信処理くらいなのかな?
620615:04/09/09 20:30
>>619
多分ブロックされる事はないと思う。
マルチタスクOSな端末がヘタレタスク処理していたら起こるかも知れん。
他のメソッドでInputStreamをclose()し忘れてて二重アクセスした場合は
ConnectionExceptionが呼ばれる。

ちなみにスクラッチパッドは番号が違うなら別のストリームとみなされるみたいで
InputStreamを複数同時に開いておける。
閉じ忘れる可能性があるから止めたほうがいいとは思うけど、
ゲームとかでオートセーブ機能付けたいとかなら仕方ないかも。
でもclose()しないとどこまで書き込んだか分からないんで、
強制終了させられた場合に大変な事になる可能性がある。
open()とclose()は必ずセットで使うように。
>きっとスクラッチパッドはブロックされることないんですよね(?)

そんな保証は何処にも無い
バグの元だからそういう考え方は止めた方がいいぞ
622608:04/09/09 23:05
>>621
保証ないですか(TT)
実は保証する記述を自分の目で確認したわけではないので
教えて頂いてる方々に聞き方やわらかく
「ブロックされることないんですよね(?)」
って言っただけです。
「バグの元」って言われてもしかたない発言ですね。
今後気を付けますm(__)m

そうなるとavailableを使うのはペケですね。
スクラッチパッドのサイズを取得するのって案外面倒なんだなあ。。。
漏れもavailableをそういう目的で使うのはバグの元だと思う。やめとくのが懸命。
SPSizeを、なんでそこまでして動的に取得したいのか分からん。
というか、SPSize取るためだけにストリームをはじからはじまでなめるなんて考えられん。。
「気持ちわるい」以外に理由がないならAppParamに書くのが一番確実。
それでもあえて動的に取得したいのなら、614さんの提案を使って、
pos=の値を(バイナリサーチの要領で)色々変えてオープンしてみるのがいいんでないの?
posがSPSize以上なら例外発生するはずだから。
624608:04/09/09 23:56
>>623
>SPSizeを、なんでそこまでして動的に取得したいのか分からん。

以前にも書き込みましたが数値の2重管理が嫌なだけです。
それ以上の深い意味はないです。
既にAppParamを使う方法で実装してあります。
ADFのSPSizeとAppParamは常に同じ値を記述しておかないといけない。
私はこの状態が「気持ち悪い」のです。
こういった数値の二重管理もバグの原因になると私は考えます。

とは言ってもバイナリサーチまでしてSPのクリアを実装するのは
ナンセンスと私も思います。
私の知らないもっと簡単に取得できる方法があるのでは?
という意味を込めて質問しているのです。
625623:04/09/10 00:03
>>624
二重管理がバグの原因になるという主張には同意するけど、
だったら必ずADFのSPSizeとAppParamの値が同じになるようにADFを生成するスクリプトを書くね。漏れなら。
626623:04/09/10 00:05
あ、あと、肝心なこと言い忘れてたけど、
> 私の知らないもっと簡単に取得できる方法があるのでは?
> という意味を込めて質問しているのです。
そういう意味では、「簡単に取得できる方法はない」が答え。
627608:04/09/10 00:07
レスありがとうございます
既に似たような手をうってありますが
どうも神経質なせいか気分が晴れない手段なんですよねー(苦笑)
628608:04/09/10 00:08
>そういう意味では、「簡単に取得できる方法はない」が答え。

了解です!!
629623:04/09/10 00:14
>>627
「気分が晴れない」ってのは分かる気がする…。
ただ、iアプリはそういう所結構多いかもw
630608:04/09/10 00:17
>>629
確かにw
iアプリ作り始めてから、そんなのばっかり。
クラスの数減らすことに必至だしw
631デフォルトの名無しさん:04/09/10 00:35
一度にDL出来るサイズって20KBまでだよね?
20KBを越えているファイルをスクラッチパッドに保存したいんだけど、
20KBずつ取り込む時にインプットストリームでスキップしていいの?
> インプットストリームでスキップ

いみふめー
>>631
httpのGETメソッド一回で取得できるサイズが20KBということなので、
ファイルを分割して、もう一度open/connectする以外に方法は無い。
631のイメージを推測して言えば、20KB以上のファイルは20KBまでは
取得できる(ハズ)が、それ以上はそもそも取得できていないので、
ストリームも20KBまで。
doja3.5では可能では?
635デフォルトの名無しさん:04/09/10 14:33:11
>>631
サーバに置くファイルを、それぞれ20KB以内に収まるように分割しておく。
んで、読んだあとにスクラッチパッドに書き込む位置を指定してつなげる。

途中でエラーが起こったときに厄介なんで俺はやらないけどw
636デフォルトの名無しさん:04/09/10 15:00:55
エラーなど起こらん
637デフォルトの名無しさん:04/09/10 16:18:13
>>636
ネットワークアクセスのエラーだろ。スクラッチパッドの読み書きでは
無いと思われ。

エラー処理なら、一度ヒープに全部読んでから、スクラッチパッドに
一気に書き込めば良し。エラーが起こったら、エラーが起こったブロックを
破棄すればいい。全部のブロックがエラー無く読み込めたら、スクラッチパッド
に書く、と。
638デフォルトの名無しさん:04/09/10 17:47:52
コメントをしこたま書いて
プログラムを記述しているのですが、
これらのツール
>Java Blender
>http://web.yl.is.s.u-tokyo.ac.jp/amo/JavaBlender/
>jarg - Java Archive Grinder
>http://jarg.sourceforge.net/
を用いると、全てのコメント行削除を行う処理をしてくれるのでしょうか。
639デフォルトの名無しさん:04/09/10 17:57:35
>>638
それ以前にコンパイラがやってくれてるよ。
640638:04/09/10 18:37:58
>639
そうだったのですか。ありがとうございます!
641デフォルトの名無しさん:04/09/10 23:54:23
ソフトキーの1と2で、どちらに終了を割り付けるのが
一般的というかめじゃーなのですか?
手持ちのアプリだと半々くらいでして。
そんなの決まってねぇ、好きにしる!ってんなら好きに
するけど。
642デフォルトの名無しさん:04/09/11 00:21:54
>>641
漏れは右(ソフトキー2)が終了が好きだな。
電源キーの近くにあるし。
643デフォルトの名無しさん:04/09/11 00:30:45
>>641
多分右側だと思う。
DoJaエミュについてくるテトリスは右だったし、ドラクエFFも右。
http://www.itmedia.co.jp/mobile/0309/25/n_foma.html
あくまで個人的な意見だけど、
指の移動距離から考えて使う手と反対側に配置するのがいいんだと思う。
とりあえずソフトキーをスワップ出来る様にしておくのもいいかもしれない。
実装も簡単そうだし。(ちょっとやってみようかな)

そういえば、セレクトキーがあるのになんでキャンセルキーがないのか…
644デフォルトの名無しさん:04/09/11 12:25:22
>そういえば、セレクトキーがあるのになんでキャンセルキーがないのか…
Macと同じで1ボタンなんだよ
645641:04/09/11 17:22:22
>642 >643
レスthx。終了は右側にしてみます。

設定可能にしてみたいけど、jarのサイズが9799byteだから、
設定機能の追加はむりぽ。今までVC++でやってたから、
この1byteを搾り出す感覚は初めてだ。
646デフォルトの名無しさん:04/09/11 17:56:58
>>645
503とかの古い機種は切ったら?
647デフォルトの名無しさん:04/09/11 23:55:43
VC++でも、1バイトの最適化が必要なプログラムはあるのだが。
648デフォルトの名無しさん:04/09/12 19:31:14
http://omori.info/java/java92.htm#s6
ここのコードをコピペしてiDKDoJa3.0でビルドして実行すると、一瞬だけ実行されて終了してしまうんだが
こうなってしまう可能性を挙げてくれ
649デフォルトの名無しさん:04/09/12 19:56:47
コピペしてるから
650デフォルトの名無しさん:04/09/12 20:03:26
しかし、あまり参考にしていいコードではないな。
651648:04/09/12 20:07:59
>>649
全角スペースは半角に置換しました
IApplicationのサブクラスとしてファイル名と同じクラスを宣言するようにも書き換えてます
ちゃんとビルドまでは通ります
ほんと初心者ですまん・・・

>>650
スマートなサンプルコードがおいてある場所があれば教えてほしいです
652デフォルトの名無しさん:04/09/12 20:09:53
resource:///image.gif
が存在しないとか
653648:04/09/12 20:22:10
それ以前にハロワでもだめぽ
test00.javaで、

import com.nttdocomo.ui.*;

public class test00 extends IApplication {

public void start() {
mycanvas w_canvas = new mycanvas();
Display.setCurrent(w_canvas);
}

class mycanvas extends Canvas {
public void paint(Graphics g) {
g.drawString("HelloWorld", 30, 30);
}
}
}


相変わらずビルド完了して起動すると即終了
654デフォルトの名無しさん:04/09/12 20:28:32
即終了ってのがよくわからんのだが、エラーメッセージは出てないの?
655648:04/09/12 20:37:50
エラーメッセージは出ません
ほんの一瞬だけエミュレータの画面が変化したあとに待機状態の白い画面に戻ります
白い画面になったら再度実行できる状態になっています
ログは

ビルド開始
C:\iDKDoJa3.0\apps\test00\bin\test00.jar を作成しました
C:\iDKDoJa3.0\apps\test00\bin\test00.jam を更新しました
ビルド終了
java.lang.ClassNotFoundException: uidemo .test00

java.lang.ClassNotFoundException: uidemo .test00

何も変哲ないです
656デフォルトの名無しさん:04/09/12 20:46:46
釣りか?
657デフォルトの名無しさん:04/09/12 20:53:52
warata
658デフォルトの名無しさん:04/09/12 20:55:47
このスレは上級者が中級者をテストしてるスレですよ。
初心者はいません。
659648:04/09/12 21:06:35
java.lang.ClassNotFoundException
これはエラーメッセージだったのか


 ∧||∧
(  ⌒ ヽ
 ∪  ノ
  ∪∪

正直ごめんなさい。あとは何とか頑張ってみる。レベル上げてまた来ます
660デフォルトの名無しさん:04/09/13 04:02:03
ImageStore#getInputStreamの返すInputStreamは
markSupportedがtrueってことで問題なし?
エミュはOKだったけど実機は持ってないから調べられない
661デフォルトの名無しさん:04/09/14 00:30:32
>>660
それはどうなんだろう。調べてみないと分からないかも。
662デフォルトの名無しさん:04/09/14 01:25:02
>>661
駄目かな?
メモリから読みこむだけだろうし
それぐらいサポートされててもいいと思うんだが
663デフォルトの名無しさん:04/09/14 07:10:13
ちょいと質問なんですが、同じ配列に、String型(文字列)と、int型(数字)を入れる事は、どうやってもできないんでしょうか?

[例]
____ hairetsuA [0] = "やまとたける"
____ hairetsuA [1] = "お笑い芸人"
____ hairetsuA [2] = 50
____ hairetsuA [3] = 86

できるとしたら、その場合ここには、何が入るんでしょうか?

無理っすかね?宜しくお願いします。
664デフォルトの名無しさん:04/09/14 09:00:08
____ hairetsuA [2] = "50"
使うときにInteger.parseIntすればいい。
665デフォルトの名無しさん:04/09/14 23:17:30
>>663
それぞれの要素が「文字列」か「数字」かは、どっか別に管理する必要があると思うんだけど、
どうするつもりなの?
まあ、664さんの案か、intはIntegerでラップしてObject[]に入れるか、どっちかだな。
でも、設計考えなおした方が良い悪寒。
666デフォルトの名無しさん:04/09/14 23:47:55
大きな配列をいくつも宣言してると、
java.lang.OutOfMemoryError が出ます。

char look = new char[256][256][9];
こんなの。

エミュレーター上ではメモリ容量の制限とかあるの?
667デフォルトの名無しさん:04/09/15 07:04:45
>663
パスカルなんかでは、簡単にできるよね。確か。
668デフォルトの名無しさん:04/09/15 08:04:44
> エミュレーター上ではメモリ容量の制限とかあるの?
Yes
669デフォルトの名無しさん:04/09/15 09:12:26
>>663がやろうとしている「異なる型のデータを一まとめで扱いたい」というのは
通常、配列ではなく構造体を使う。
Javaには構造体がないから、その役割を含むClassを使うことになるが。

もし構造体(ないしClass)のことを分かっていて、それでも「Classはプログラムの
サイズが大きくなるから、なんとか配列で工夫できないか模索している」ということ
であれば、このレスはただの余計なお世話で、>>664>>665の方法が有効そうだ。
670デフォルトの名無しさん:04/09/15 13:44:34
>>663
できるとしても、そこには何も入らんな。
671666:04/09/15 16:57:43
>>668
サンクスです。
ちなみにどうにか制限を緩和する方法ない?
設定を変更できるとか、起動オプションで対応できるとか…
672666:04/09/15 19:14:34
すみません、インストーラーの隣にドキュメントあったのね…。(;・∀・)
お騒がせしました。
673デフォルトの名無しさん:04/09/15 21:01:55
Graphics2のレンダリングでイメージの透過をさせたいのですが、
書き方が解りません、ご教授下さい
674デフォルトの名無しさん:04/09/15 23:49:56
Graphics2#setRenderMode(int operator, int srcRatio, int dstRatio)

画像を薄くして背景が透けて見えるようにするにはoperatorはOP_ADD。
背景の色を透けさせないで薄い画像を描くにはoperatorはOP_REPL。
OP_SUBはあまり使いどころがないかもしれない。背景の裏側にキャラとか?

表示する画像と背景は0〜255の256段階の濃さを持っていて
0で完全透明、255でもともとの濃さ。
srcRatioが描画する画像の濃さ、dstRatioが背景の濃さ。

もとの色の75%に薄めた画像を、背景を透けさせて描くなら
Graphics2 g2 = (Graphics2)g;
int srcRatio = 255 * 75 / 100;
int dstRatio = 255 - srcRatio; ←画像と合わせて255(100%)となるように
g2.setRenderMode(Graphics2.OP_ADD, srcRatio, dstRatio);
g2.drawImage(…); ←画像を描く
675デフォルトの名無しさん:04/09/16 00:07:45
機種依存が無ければ使いたい…。
676デフォルトの名無しさん:04/09/16 01:18:56
まあ、getRGBPixelsとsetRGBPixelsを組み合わせれば
イメージ描画に関しては同じ事が出来るんだけどな。
でもどうしたって遅くなってしまうからなあ。
さっさと基本APIにして欲しいよ。
677デフォルトの名無しさん:04/09/16 01:31:07
>>674
できました、ありがとう。
あと、setRenderMode後すべてが透明化になるのですが、
もとに戻すにはg2.setRenderMode(Graphics2.CM_NORMAL, 255, 255);
で、いいんでしょうか?(一応もどってるけど、、
678デフォルトの名無しさん:04/09/16 01:39:36
>>677
g2.setRenderMode(Graphics2.OP_REPL,255,0) とかじゃない?
CM_NORMALも結局は同じ値(=0)だからたまたま戻ってるけど。

>>675
めちゃめちゃ機種依存。
機種ごとに正常に動く描画プリミティブが違うので事実上使えないorz

679デフォルトの名無しさん:04/09/16 01:52:37
>>678 サンクス

今、検索してたら900iVはX・・(゚听)

iアプリむつかしいな・・・(プログラム初めてなんで

2chでよくみる orz って何の略?
680デフォルトの名無しさん:04/09/16 01:56:59
>>679
人間がひざをついてる。
681679:04/09/16 01:59:10
!!!
682679:04/09/16 02:05:11
iアプリって皆APIドキュメントだけ頼りに作ってるんですか?
ドキュメントの解釈がかなり難しいんですけど・・
さっきの ソースピクセルとか dstRatio - デスティネーションピクセルとか、

プログラム以前の問題ですかね?
683デフォルトの名無しさん:04/09/16 05:16:46
>>679
>2chでよくみる orz って何の略?

たとえば>プログラム以前の問題ですかね?の後なんかに使えるね、この場合。
684デフォルトの名無しさん:04/09/17 00:35:00
setRenderModeは、最低でもalpha blendingのこと知らないとAPIドキュメントの記述はわからんだろうな。
685デフォルトの名無しさん:04/09/17 01:18:02
>>684
アルファブレンディングはできないけどな。
686デフォルトの名無しさん:04/09/17 15:55:25
doja 3.5 のエミュレータで、ダイアログがうまく表示されないのです。
画面が一瞬白くなってダイアログの次の処理に進んでしまうのです。
自動的にOKボタンが押されている感じです。

Dialog d = new Dialog(Dialog.DIALOG_YESNO, "ゲーム終了");
d.setText("もう一度やりますか?");
d.show();

実機で試してみたら、ちゃんとダイアログが表示されるようです。
デバッグに困るので何か回避方法はないでしょうか。
687デフォルトの名無しさん:04/09/17 17:12:06
バグを出さない。
ってか、デバッグの意味わかってる?
688デフォルトの名無しさん:04/09/17 17:12:08
>>686
show()が例外投げてません?
689686:04/09/17 17:31:00
>688
レスありがとうございます。
show() で例外は発生していないようです。
try〜catchでは捕まえられませんでした。
690デフォルトの名無しさん:04/09/17 17:45:15
ダイアログ側で、Display.KEY_PRESSED_EVENTじゃなくて
Display.KEY_RELEASED_EVENTを見るようにすればいいんじゃない?
691686:04/09/17 17:49:34
>690
それは Dialog クラスの中をいじるってことでしょうか?
692デフォルトの名無しさん:04/09/17 18:15:47
>>690
ダイアログ出力側?
693デフォルトの名無しさん:04/09/17 18:16:35
>>686
機種依存しそうだな。
694デフォルトの名無しさん:04/09/17 18:30:48
>>686

ダイアログはボタンを離すという動作に反応する。
つまりKEY_UPで反応するわけだ。

なのでKEY_PRESSでダイアログが出るような仕組みだと、
ボタンを1回押すという動作。PRESS→UPで、即座にダイアログが
選択されたことになってしまうぞ。
695690:04/09/17 19:43:22
>>692>>694
そそそ。すまん、正しくはダイアログを表示させる側、だね。
696デフォルトの名無しさん:04/09/17 20:09:46
doja3.5のエミュでSH900i用の画面サイズの設定はないんでしょうか?
画面の高さとフォントの大きさが他と違うみたいなんですよね
697デフォルトの名無しさん:04/09/17 21:09:28
>>696
SH900iは240x262で、他の機種より縦に12dot長い。
DoJa3.5のエミュでもdevice 2を選べば、まったく一緒ではないにしろやや縦長になる。
698デフォルトの名無しさん:04/09/17 21:49:31
>>696

エミュのスキン設定ファイルに
font_size=12,20,24
を書き込む。
設定ファイル弄れば画面サイズも変更できる。
699デフォルトの名無しさん:04/09/20 10:23:06
>>拡張APIの実行速度と実装状況
全機種JBlend搭載になれば、大分マシになるんだろうか?
901iではこんな糞い状況にならないことを期待してみたり。

この辺の処理仕様さっさと纏めろよドコモ…。
700デフォルトの名無しさん:04/09/20 14:47:48
「クリックしたらhttpに接続して、(単純に)サイトを表示する」ということをプログラムしたいのですが、
どのサイトを参考にしようとしても、『GET(またはPOST)で引数を渡して…』とか、『単純に表示するだ
け』の機能の解説がありません。できないっつーことですかね?

一応、今は、ボタン待機状態から、
if(event==Display.Key_SELECT){
HttpConnection urlCon = (HttpConnection)Connector.open("http://○○○○○.com",Connector.READ,true);
urlCon.connect();
}

でやってるのですが、例外で、『java.lang.SecurityException』が出てしまいます。

どなたかわかる方、いらっしゃいましたら御享受いただければ幸いです。
701デフォルトの名無しさん:04/09/20 15:25:05
>>700
ダウンロード元じゃないところに接続してるんじゃないの?
単純に表示するだけって、HTMLを文字列として?
HTMLを解析してレンダリングすることは単純じゃないぞ。

享受・・・あるものを受け、自分のものとすること。
702デフォルトの名無しさん:04/09/20 15:37:39
>>701
どうもです。
一応、ダウンロード元と同じサーバーです。。。
(でも、それって900iから解消されたんじゃないんでしょうか?)

単純に表示する…というのは、iアプリ実行中、SELECTボタンを押すと、iモードが立ち上がってネットに接続される、という事です。

インテリア用品の商品の紹介アプリなんですが、アプリ内に商品GIFと商品解説があって、『この商品を詳しく知りたい』をクリックすると、単純にネット上の販売サイトに移動する、ということをしたいのですが。。。
(その際、iアプリは立ち上げっぱなしにして、iモード接続状態にしたいです。)
703デフォルトの名無しさん:04/09/20 16:00:47
jamに設定してないだけちゃうんかと
704デフォルトの名無しさん:04/09/20 16:28:37
>>702
できないよ。
iアプリはセキュリティの問題からダウンロード元のサイト以外と通信できない。
900iだろうが同じ。iアプリDXだとこの制限はなくなるが、申請できるのは当然
公式のコンテンツプロバイダのみ。

ダウンロード元のサーバでも、iアプリの中からWEBページを直接表示することは
できない。HTMLファイルをナマのまま引っ張ってきて自力でタグを解析して表示
することならできる(これを「WEBページが表示できる」と言っていいかは疑問だが)。

”単純に”WEBページを表示するなら、iアプリ内からブラウザ連携機能で
ブラウザを呼び出す。しかしこの場合、iアプリはブラウザ起動と同時に終了する。
705デフォルトの名無しさん:04/09/20 17:07:22
わざわざアプリ作る必要無い予感
706デフォルトの名無しさん:04/09/20 19:20:17
>>705
俺もそれが頭をよぎった
707デフォルトの名無しさん:04/09/20 20:34:32
それをふまえてすげーの作る予定なんだよ、きっと
708デフォルトの名無しさん:04/09/20 21:08:02
>>700
ひょっとしてlaunch()の事が知りたいのか?
launch(LAUNCH_BROWSER,new String[]{"URL"})でアプリを終了してブラウザを起動するが。
709デフォルトの名無しさん:04/09/24 13:10:28
N900iで開発をしているのですが、ダウンロードしたアプリを実行しようとすると、
「ソフトに継続動作できない障害が発生しました」
となり、終了していまいます。Trace onにして実行した結果
message = Class extends a final class throwable =
throwableMessage =
curClass = com/nttdocomo/ui/KJAE
curMethod = main

とでます。
どのような意味かご存知の方はおられるでしょうか?
710デフォルトの名無しさん:04/09/24 23:30:59
>>709
com.nttdocomo.ui.KJAEって、709さんが作ったクラス?
com.nttdocomo.uiパッケージの中に自作のクラスを入れるとダメだったりしない?
711デフォルトの名無しさん:04/09/25 21:25:13
>>709
終了する一歩手前までSystem.out.printlnとかでどの行で終了するか見てみろ。

System.out.println("エラー確認用 No.1");
処理1
System.out.println("エラー確認用 No.2");
処理2
System.out.println("エラー確認用 No.3");

とかするとトレースで確認した時

エラー確認用 No.1
エラー確認用 No.2
message = Class extends a final class throwable =
throwableMessage =
curClass = com/nttdocomo/ui/KJAE
curMethod = main

と出た場合処理2が原因と分かる。
712711:04/09/25 21:52:25
>>709
Nシリーズはエラー発生時にエラー表示が出るんだった。
その内容が
message = Class extends a final class throwable =
throwableMessage =
curClass = com/nttdocomo/ui/KJAE
curMethod = main
これだったのか。
>>711の方法はメニュー画面からiアプリに行って
それらしいトレースの項目探せばSystem.out.printlnの表示が見れる。
713 :04/09/26 16:55:12
>710
便乗質問なんですけど、iアプリって
自分でパッケージを作成してimportできるのですか?
714デフォルトの名無しさん:04/09/26 17:20:49
お邪魔します。

現在、Panelで画像をいくつか表示させています。
同じ画像に対して2回setLocationを書くと、一つしか表示されないようです。
一度取り込んだ画像を、同時にいくつも表示させる為には
画像の数だけ取り込みを行わないといけないのでしょうか?


宜しくお願い致します。
715デフォルトの名無しさん:04/09/26 17:49:59
f505iなんですが、
指紋センサ(FingerSensor)って使えないんでしょうか?
jguideforDoJa3_0_opt_040709.pdf
に使えるっぽいこと書いてあるんですが、とりあえずビルドしてみると
UnsupportedOperationExceptionで使えないっぽいです。
ADFのTrustedAPIDを設定してみても変わらず。
昨日からiアプリというかJava始めたのでお手上げでした。
使えませんかね?
716デフォルトの名無しさん:04/09/26 18:18:33
>>715
使えるけど、一部のメソッドは非対応だったはず(authenticate()が使えないとか)
>>2のリンク先にオプションAPIの対応状況のpdfがあるからそれ見てチョ

あと、エミュと動作が微妙に違うから、エミュで動いても実機じゃエラーになる事もあった気が
717デフォルトの名無しさん:04/09/26 20:05:57
>>713
できるよ。
718デフォルトの名無しさん:04/09/26 22:06:53
>>714
setLocation がどういうメソッドなのかは知ってるよな
719デフォルトの名無しさん:04/09/27 00:12:25
>>713
importって、どういう役割してるか知ってる?
名前省略できるようにするだけだよ。
720デフォルトの名無しさん:04/09/27 04:29:56
>>716
使えませんでした・・・(´・ω・`)指紋センサのナビゲーション機能を使って
指紋センサをマウスがわりにするアプリを作りたかったのですが、駄目なようでした
Doja3.0でも3.5でもやっぱFingerSensor使えないみたいなんです。
FingerSensor.getFingerSensor();で実装例外に陥ります。

iアプリコンテンツ開発ガイド for DoJa-3.0 iアプリオプション・iアプリ拡張編
http://www.nttdocomo.co.jp/p_s/imode/java/kiyaku.html
の第11章に指紋センサ機能に関する情報が載ってました。

ここにFingerSensorのサンプルソースが載っています。
http://timekiller.info/javadoc/3.0optapi/com/nttdocomo/opt/device/FingerSensor.html

Doja3.0プロファイルiアプリコンテンツ開発ガイド for DoJa-3.0各機種オプションAPI・拡張API実装状況
http://www.nttdocomo.co.jp/p_s/imode/java/pdf/jguidefordoja3_0_opt_impl031224.pdf
を見ると、エミュレータではFingerSensor対応にと書いてありました。
でもエミュレータでも使えないようでした。

そこでFingerSensorに関する情報を拾ってみました。
Doja3.0の開発ガイドDevGuide.pdfのエミュレーション端末の項目(p47)
にはFingerSensorの項目が載っているが実際には何故か使えない。
さらにDoja3.5の開発ガイドにはこの項目が削除されています。
f900iに指紋センサが付いているのにエミュレータでは非対応になったのかな?
721デフォルトの名無しさん:04/09/27 13:58:23
Fでテストしているとunlockで30ms程かかっているんですが、
この速度を上げることはできるんでしょうか?
可能であればなくしたいのですが。
722デフォルトの名無しさん:04/09/27 14:12:57
裏バッファとしてImageをつくり、そこに全て描画してから
一括して表画面に(lockせずに)drawImageする。

でもそれだとlockの方法の方が早いと思うなぁ。
元からlockを使わないですむようなアプリならいいんだけど、どう?
723709:04/09/27 15:08:17
みなさんどうもありがとうございました。
色々細かく調べた結果,
com.nttdocomo.ui.AnchorButton
を継承した自作のクラスを作ったのが原因でした。
724721:04/09/27 17:40:25
>>722
ありがとうございます。
そのやり方自体は一応思いついていて、
やろうかどうか迷っていたんですが、
思ったより簡単にできたので変更してみたんですが、
ほとんど変わりませんでした。
わずかながらlock・unlockの方が速いような気もします。
unlockでかかる時間は何かに依存しているんでしょうか?
725デフォルトの名無しさん:04/09/27 23:04:10
Editコンポーネントは使えないのですか?
726デフォルトの名無しさん:04/09/27 23:57:43
こんばんは。アプリ開発初心者です。
データをダウンロードしてスクラッチパッドに格納したいのですが、
データの容量が20K以上(下りは20Kまで)だと破棄されてしまします。
GETをPOSTにすればできると思ったのですがうまくいきませんでした。
みなさんは20K以上のデータをダウンロードしてスクラッチパッドに
格納する場合、20Kごとに分割してダウンロードしているのでしょうか?


try{

conn = (HttpConnection)Connector.open
("http://localhost/aa.pak",Connector.READ,true);

conn.setRequestMethod(HttpConnection.GET);
conn.connect();
int len = (int)conn.getLength();
in = conn.openInputStream();
byte b[] = new byte[len];
in.read(b,0,len);
in.close();
conn.close();

// save res
out = Connector.openOutputStream("scratchpad:///0;pos=1");
out.write(b);
out.close();

}catch(IOException e){System.out.println("error: "+e );}
727デフォルトの名無しさん:04/09/28 00:17:59
TextBox配列の宣言の仕方がわかりません。

private TextBox t_edit[]=new TextBox[5]("",10,1,TextBox.DISPLAY_ANY);

では;が無いと言われます。
728デフォルトの名無しさん:04/09/28 00:37:22
>>726
キミはまずGETとPOSTで何が違うのかを勉強してくれ。iアプリじゃなくてHTTPの話だ。
で、iアプリでは規定量以上を1回のやりとりじゃダウンロードできない。
なので、分割ダウンロードするしかない。

>>727
配列の初期化と配列の要素の初期化は別。あえてやるなら、
private TextBox[] tEdit = new TextBox[5] { new TextBox("", 10, 1, TextBox.DISPLAY_ANY),
new TextBox("", 10, 1, TextBox.DISPLAY_ANY),
new TextBox("", 10, 1, TextBox.DISPLAY_ANY),
new TextBox("", 10, 1, TextBox.DISPLAY_ANY),
new TextBox("", 10, 1, TextBox.DISPLAY_ANY) };
かな。
729727:04/09/28 00:50:53
>>728
理解しました。夜中にレスどうも。
730720:04/09/28 03:41:37
説明諸読み返したらできました。>>716サンクス
でもf505iでは動きません。(´・ω・`)ガッカリ。
以下ソース。板汚してごめんね。
import com.nttdocomo.ui.IApplication;import com.nttdocomo.ui.*;import java.util.*;
import com.nttdocomo.ui.PhoneSystem;import com.nttdocomo.opt.ui.PhoneSystem2;
import com.nttdocomo.opt.device.FingerSensor;// 指紋センサー
import com.nttdocomo.opt.device.FingerprintAuthenticator;
import com.nttdocomo.system.InterruptedOperationException;
import com.nttdocomo.lang.UnsupportedOperationException;
import com.nttdocomo.lang.IllegalStateException;
public class FingerSensor1 extends MApplication {
    static FingerSensor fs;mycanvas w_canvas = new mycanvas();String w_move="";
    public void init() {
        try{
            fs = FingerSensor.getFingerSensor();    // 指紋センサオブジェクトを取得
            fs.setAttribute(FingerSensor.DEV_SENSE_INTERVAL,100);//setinterval
            fs.setAttribute(FingerSensor.DEV_NULL_EVENT_NOTIFICATION,FingerSensor.ATTR_NULL_EVENT_ON);
            fs.setEnabled(true);// ナビゲーションモードを有効
731720:04/09/28 03:42:42
        }catch(UnsupportedOperationException e){
            System.out.println("UnsupportedOperationException");
        }catch(IllegalStateException e){
            System.out.println("IllegalStateException");
        }
    public void start(){
        w_canvas.setSoftLabel(w_canvas.SOFT_KEY_1,"終了");
        w_canvas.setSoftLabel(w_canvas.SOFT_KEY_2,"test");
        Display.setCurrent(w_canvas);
        init();
        System.out.println("init completed.");
    }
    class mycanvas extends Canvas {
        public mycanvas() {    
        }
        public void paint(Graphics g) {
732720:04/09/28 03:44:19
            g.lock();g.clearRect(0,0,240,268);g.drawString(w_move, 5, 50);g.unlock(true);
        }
        public void processEvent(int type, int param) {
            int deltaX, deltaY;            // 移動量
             String w_dx,w_dy;            // ΔX、ΔY
             repaint();                // 再描画
                switch(type) {
                case Display.FINGER_MOVED_EVENT:
                    // 移動量を取得
                    deltaX = fs.getSenseData(param, FingerSensor.DATA_DELTA_X);
                    deltaY = fs.getSenseData(param, FingerSensor.DATA_DELTA_Y);
                    w_dx="移動量:ΔX : "+deltaX;
                    w_dy="ΔY : "+deltaY;
733720:04/09/28 03:44:45
                    w_move=w_dx+w_dy;System.out.println(w_move);
                break;
                
                case Display.KEY_PRESSED_EVENT:
                    if(param==Display.KEY_SOFT2){
                        System.out.println("非活性化に移行");deactivate();
                    }
                    if(param==Display.KEY_SOFT1){
                        System.out.println("終了");terminate();
                    }
                break;
                }
        }
    }
}
734730:04/09/28 03:52:18
(´・ω・`) 夜う゛ぁい。寝なくては。
735デフォルトの名無しさん:04/09/28 13:04:06
コンポーネントをグリッド状に配置するメソッドはありますか?
736デフォルトの名無しさん:04/09/28 13:23:30
>>735
ない
737デフォルトの名無しさん:04/09/28 13:29:54
sortしたいんですけど何をimportすればいいですか?
738デフォルトの名無しさん:04/09/28 13:53:56
>>737
自前で・・・
アルゴリズム教科書読みながらクイックソートなり、
シェルソートなり、データの特性にあった方法で。

すごく不便なんだけど何しろ「きろばいとじゃゔぁ」なので。
739デフォルトの名無しさん:04/09/28 14:10:24
>>737
importはクラス名を省略形で書けるようにするだけ。
740デフォルトの名無しさん:04/09/28 15:28:12
cgiから通信データをバイナリで受け取っているのですが、
cgi側の「print pack("a",10)」で送ったデータを受け取ると、13,10の値になってしまいます。
多分改行コードの関係だと思うのですが、これはcgiとjavaのどちら側の問題なのでしょうか?
741デフォルトの名無しさん:04/09/28 15:37:03
>>740
なにをやってるか正確にわかるようにかけ。
どうやって受け取ってるかわからなければ、おまえのコードが悪いのか、Javaのなにかが悪いのかもわからんだろ。
742740:04/09/28 16:06:25
こんな感じです。

byte data[] = new byte[10];
HttpConnection connect = (HttpConnection)Connector.open(getSourceURL()+"connect.cgi",Connector.READ_WRITE,true);
connect.setRequestMethod(HttpConnection.POST);
connect.setRequestProperty("Content-Type", "text/plain");
OutputStream output = connect.openOutputStream();
output.write(0);
InputStream input = connect.openInputStream();
input.read(data);
743742:04/09/28 16:08:55
すみません、output.write(0);のあとにconnect.connect();が入ります。
744デフォルトの名無しさん:04/09/28 18:19:24
Stringの数字をbyteとして扱うにはどうすればいいですか?
745デフォルトの名無しさん:04/09/28 18:47:54
>>744
そりゃJavaの問題だろ。
static byte parseByte(String s)
指定された String が byte を表すと仮定し、その byte 値を返します。
static byte parseByte(String s, int radix)
指定された String が byte を表すと仮定し、その byte 値を返します。
746デフォルトの名無しさん:04/09/28 20:05:33
TextBoxのtextが変更された時のイベントは何ですか?
747デフォルトの名無しさん:04/09/28 22:48:50
すいません、iアプリで累乗の計算がしたいんですけどどうしたらいいですか?
「 ^ 」←この記号だとできないみたいなんで。。
748デフォルトの名無しさん:04/09/28 23:14:25
>>747
累乗なんて計算できない。
がんばって*で何回も掛け算しなさい。
CLDC1.0だと浮動小数点数も使えないのでpowもない。
749デフォルトの名無しさん:04/09/28 23:17:19
static long ruijo(int x, int n) {
long a = 1;
while (n-- > 0) a *= x;
return a;
}
これで我慢しろ。
750デフォルトの名無しさん:04/09/28 23:22:25
>>740
pack("a", 10)が何を意味してるか知らんけど("a"なんて使ったことない)
10が13,10になるってのは
ようするにLFがCRLFになるってこと?
もし、perlをwindowsで実行してるのなら、STDOUTをbinmodeしなきゃだめだよ。
binmode STDOUT;
print "\x0a";
751747:04/09/28 23:27:35
>>748,749
そうなんですか。ありがとうございます。
10^3.2 とか計算したかったんですけど無理ですよね。つД`)
752デフォルトの名無しさん:04/09/29 00:54:39
>>751
そもそも整数しか使えないからなあ。
どういう計算がしたいのかわからないけど、固定小数点をつかうようにして、数表用意するのが現実的だと思うよ。
753デフォルトの名無しさん:04/09/29 05:47:59
>>752
さすがに数表じゃ無理でしょ。
真面目に計算した方が楽そう。
754747:04/09/29 08:35:51
>>752,753
わかりました、ありがとうごあいました。。
755740:04/09/29 09:12:13
>>750
binmodeがSTDOUTに使えるのは知りませんでした…。ありがとうございます。
756750:04/09/29 23:32:32
>>755
POSTで(urlencodedされてない)バイナリをうけとる時は、STDINもbinmodeにしなきゃだめですよ。
Windowsは。
って、そろそろスレ違いだからやめよう。うん。
757デフォルトの名無しさん:04/09/30 11:19:26
drawString()で絵文字を表示すると、色が絵文字独自の色になってしまう機種があるのですが、
これをSetColor()で指定した色で表示する方法はないのでしょうか?
758デフォルトの名無しさん:04/09/30 11:34:19
>>757
Graphics#setPictoColorEnabled
759デフォルトの名無しさん:04/09/30 11:55:51
>>758
ありがとうございます!ヽ(`Д´)ノ
760デフォルトの名無しさん:04/09/30 16:03:17
実機持ってないんでわからないんですけど、
サイズ10KB以上はダメなんですか?
761デフォルトの名無しさん:04/09/30 16:14:25
>>760
実機持ってないあなたには1KBすら許されません。
100KBが許される端末を使っている人には100KBが許されます。
762デフォルトの名無しさん:04/09/30 22:00:03
初回起動時にパスワード入力画面が出て、一度入力すれば次から表示されない
ようにしたいのですが、そうするとスクラッチパッドを使ってしまいますよね?
SPは他の事にも使いたいのですが、どうにかなりませんか?
763デフォルトの名無しさん:04/09/30 22:09:30
>>762
スクラッチパッドの何バイト目に何のデータを書くか決めればいいだけだろ。
もう少し頭使おうぜ。
764デフォルトの名無しさん:04/09/30 22:33:20
>>762
パスワードを入力したら、本物のiアプリをダウンロードする
765デフォルトの名無しさん:04/09/30 22:40:51
mldファイルをAudioPresenterで再生しているのですが、何故か音量が小さくなってしまいます(´・ω・`)
N900i内臓のメロディプレイヤーだと普通の音量で再生できるのですが…。
setAttribute()でAudioPresenter2.VOLUMEを指定しなおしても変わりません。
まだ何か足りないのでしょうか?
766デフォルトの名無しさん:04/10/01 00:06:15
>>765
データは何で作ってるの?
767デフォルトの名無しさん:04/10/01 00:33:24
>>762
SPの一番後ろのByteに0か1を入れて書き込めばいいっしょ。
768765:04/10/01 01:07:07
>>766
PsmPlayerV4.41のiメロディFM16和音作成(N)で作っています。
505,506,FOMA900全機種で共通で使おうと思っているのですが、やはり無理がありますかね?
769デフォルトの名無しさん:04/10/02 18:43:02
質問よかですか?

今までSPSize=20480で快調に動いていました。
今日、画像が増えたのでSPSize=30720にしたんです。
すると、スクラッチパッドの20480辺りで画像が壊れるんです。
(20480以降の始めの画像を読み込まない。ダンプ表示は行ってない。)

なぜなんだか、、、

環境は、
SH505i
eclipse
770デフォルトの名無しさん:04/10/02 20:22:06
>>769
DoJa-3.0では、1回のHTTP通信で取ってこれるデータの最大サイズが20KBだから。

なので、データを分割して読み込むようにするか、SPの領域を別にする必要がある。
771デフォルトの名無しさん:04/10/02 20:42:14
>>770
で、でたー!
なんだよその仕様。。。
説明書に書いてあったっけ?
まぁ、いいや。

非常に助かった。
ありがとう。
772デフォルトの名無しさん:04/10/02 20:59:41
>>771
最大サイズを越えてHTTPで取ってこようとすると、ConnectionExceptionになるんじゃなかったっけ?
例外キャッチすればSPの問題じゃないって分かりそうなもんだが。。
773デフォルトの名無しさん:04/10/02 23:20:25
というか、いまさら20K制限とか知らないのもどうかと思うんだが…。

いや、初心者なら確かにそうなんだけど
「なんだよその仕様」とか
「説明書に書いてあったっけ?」
とか(;´Д`)

そういう仕様なんだよ!
説明書にきっちり書いてあるんだよ!
774デフォルトの名無しさん:04/10/03 00:19:43
質問失礼します。
iアプリをDLする人の会員管理をしたいのですが、
iアプリをDLするとき、CGIか何かサーバ側プログラムで
JAMファイルのAppParamに会員ナンバーを
動的に割り当てる方法は可能でしょうか?
775デフォルトの名無しさん:04/10/03 00:58:14
>>774
そりゃ可能だと思うが。
実際よくやるよ。
776デフォルトの名無しさん:04/10/03 13:25:10
初めてiアプリを作っています。(java自体初めてです)
Doja3.5のDOCOMOのエミュでは動作しますが、N900isでは
エラーがでてうまくいきません。
携帯に保存された画像を読み込んで拡大縮小表示するだけの
簡単なものですが、下記で例外が出ます。
ImageStore ie = ImageStore.selectEntry();
MediaImage mi = ie.getImage();
m.use();

use()した際に例外が発生しますが、待ち受け画像の標準サイズ
より大きい画像の場合のみです。機種依存なのでしょうが、これを
回避する手段はあるでしょうか。また、この手の機種依存が記載
してあるところがあればご教示ください。
777デフォルトの名無しさん:04/10/03 13:38:33
>>776
ヒープの問題だよ。
Nはでかいの無理。
他機種ではいけるのあるよ。
778771:04/10/03 14:25:41
>>773
あら。
ごめんなさいねぇ。
もう、二度と書き込まないワン
779デフォルトの名無しさん:04/10/03 14:44:42
>>776
> use()した際に例外が発生しますが、待ち受け画像の標準サイズ
> より大きい画像の場合のみです。機種依存なのでしょうが、これを

もろに機種依存です。アスキーのFOMA本には書いてあったと思う。
780774:04/10/03 15:47:04
>>775
レスどうも。
そうなんですか。よく使う手なんですか。
携帯関連のPGは初めてなもので、
ありがとうございます。
Java servletでやってみます。
781デフォルトの名無しさん:04/10/03 15:54:15
J2SE5.0は対応してますかね?
やっぱり1.4じゃないと駄目ですか?
782デフォルトの名無しさん:04/10/03 15:58:02
>>781
それをいうなら、1.3じゃないとだめと聞かないと。
とりあえず、エミュは問題なく動く。
783愛の戦士:04/10/03 16:00:17
彼女の携帯アドレス帳をゲットしたいのですが・・・
浮気調査ですけど・・・
何か良い作戦ないですか?
784デフォルトの名無しさん:04/10/03 16:03:31
>>783
スレ違い。夜中に盗み見ろ。
785デフォルトの名無しさん:04/10/03 18:01:27
>>776
NとPは、縦横320pixelまでのImageしか扱えない。
786781:04/10/03 18:33:11
>>782
すいません。公式には1.3でしたね。
確かにサンプルを書いて動かしてみたらエミュレータでは動いたんですが、
携帯では動きませんでした。
target指定とか出来ればいけると思ったんですが・・・指定の仕方も分からない・・・
787デフォルトの名無しさん:04/10/03 18:53:34
>>786 -target 1.1 でないとpreverifyできない
788デフォルトの名無しさん:04/10/03 20:37:32
というか、1.4依存の命令使ってるってことか?
あまりお目にかからないんだが…
789デフォルトの名無しさん:04/10/03 21:07:23
>>779
>>776
ありがとうございます。
すっきりしました。
地下鉄の路線図の画像を携帯で見るために試行錯誤したのですが、
内蔵ビューアの編集画面での等倍表示で我慢するしかないですね。
ビューアに拡大表示機能があればいいだけなのに、、、
がっくし。
790デフォルトの名無しさん:04/10/03 21:09:54
>>785さんでした
791デフォルトの名無しさん:04/10/03 22:50:32
>>787
確か最新の、SunのCLDC付属のpreverifyは、1.4でも普通にperverifyできたと思った。
792デフォルトの名無しさん:04/10/04 00:15:32
  <⌒/ヽ-、___
/<_/____/                                                                
                
   ∧∧
  (u・ω・)
  _| ⊃/(___
/ └-(____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄

  <⌒/ヽ-、___
/<_/____/                                                                
793デフォルトの名無しさん:04/10/05 20:55:33
J2SE5.0 & iappliTool for DoJa-3.5 の環境で,
サンプルソース(テトリス)をiappliTool上からビルドすると,

javac: ターゲットリソース1.1がデフォルトのソースリリース1.5と競合しています.
javacの実行に失敗しました

と,でます.
iappliToolのビルドに -target 1.1 をつける方法ってありませんか?
てゆうか,それ付けられればビルドが通るのかすら,わからない.
794デフォルトの名無しさん:04/10/05 21:09:02
J2SE5使うなよ。
795デフォルトの名無しさん:04/10/05 21:40:06
しかし、現実的ではないなぁ。
iアプリ開発用の環境にはJ2SE5がインストールできないとなると。
「設定 > sun.tools.javac.Mainを使用する」にチェックいれればいいと思うんだけどね。
796デフォルトの名無しさん:04/10/05 22:00:37
そこでEclipseですよ。
797デフォルトの名無しさん:04/10/05 22:06:36
>>796
リリース用のビルドはDoJaで。
単純にビルドすると、サイズがかなり違う。
798デフォルトの名無しさん:04/10/05 23:15:40
>>795
おぉっ! 通った.
どうもありがとうございました.
799デフォルトの名無しさん:04/10/05 23:21:10
Eclipseでiアプリって作れるんですか?
800デフォルトの名無しさん:04/10/05 23:28:48
>>799
できるよ。ぐぐったらでてくる
801デフォルトの名無しさん:04/10/05 23:33:18
>>799
むしろ、Eclipseで作らずになんで作るんだ?という状態。
DoJaはSunOneStudioにも対応してるが、該当バージョンはもはや古すぎる
802デフォルトの名無しさん:04/10/06 00:27:27
初心者なら最初は適当なテキストエディタだけ使ってた方がいい。
アプリを製作してくうちに必要性を感じたら開発環境を整えてけ。
そうでないとエラーが出たとき環境なのかソースなのか
原因を突き止める能力が備わってないうちは振り回されて困るだけ。
もちろん必要性を感じなかったらずっとエディタだけでも構わない。
803デフォルトの名無しさん:04/10/06 00:27:47
>>801
ふつーにDoJaで作ってるけどなぁ(w
デバッガの挙動とか微妙にアヤシイのでEclipse使わなくなった。
804デフォルトの名無しさん:04/10/06 00:54:48
>>802
変な入力ミスや、ビルドせず実行してエラーが治らないといって悩む時間があるなら、Eclipseに入力ミスを治してもらって、本質的な部分で悩んだ方がいい。
デバッガの挙動があやしくてEclipseを使わないなら、デバッガには何使うんだ?
結局デバッガを使わないなら、Eclipseでいいじゃないか。
805デフォルトの名無しさん:04/10/06 00:57:42
少なくとも、まわりに経験者がいてめんどう見てもらえるんじゃない限りは、統合環境を使うべき。
そうでないと、くだらないことで悩む時間が多すぎる。
806デフォルトの名無しさん:04/10/06 00:59:00
>>797 かなり? デバッグシンボル付けないようにすれば
ほとんど変わらないと思うぞ。
807デフォルトの名無しさん:04/10/06 01:10:28
>>806
「単純に」
ビルドオプション変えてもサイズが違うのは事実だし、とりあえずDoCoMoの資料にはDoJaでビルドするように書いてある。
808806:04/10/06 01:13:16
>>803
元々Eclipseは組み込みJava向け開発環境だったVisualAge for
Java for MicroEditionが元になってる。だからJ2MEにはかなり
積極的なんだけど、KVMに対するデバッガ接続に関しては「こっちは
規格どおりやってんだけど、SunのKVMってなんかおかしいんだよね。
(Sunのなんか使わずに)J9使ってくれないかなあ」という愚痴めいた
対応をたまにするね、彼ら。それでも昔に比べるとかなりマシになった。
ちなみにJ9ってのはIBMが作ったJava VMで、今はJ2ME向けに出荷されている。
809806:04/10/06 01:16:59
>>807 リリースビルドでシンボル付けっぱなしってことは
普通やらんだろ。「単純な」場合だけ比較しても
意味ないね。
810デフォルトの名無しさん:04/10/06 01:24:16
わざわざEclipseでデバッグ情報外してビルドするならDoJaでやったほうがいいと思うのだが。
iアプリのサイズの場合、差の大きい小さいより、差があることが重要になることも多いし。
811デフォルトの名無しさん:04/10/06 01:29:36
Eclipseとの差を気にして、javacのバージョン違いに
ついては無頓着なのが不思議。
812803:04/10/06 02:17:24
>>804
デバッガは使ってない。無くてもそんなに困ったことないなぁ。
iアプリだと一人で全部開発しちゃうわけで、コードの全容を把握できてるなら
エラーがあってもトレースするまでも無く原因を追えるし。

何より、使い慣れたエディタで編集したいw
813デフォルトの名無しさん:04/10/06 08:42:49
>>812
使い慣れたエディタがあるなら、なにもいうことはない。
814デフォルトの名無しさん:04/10/06 10:32:57
Eclipse重過ぎないか。
815デフォルトの名無しさん:04/10/06 11:19:31
そうか?
VMが新しければ問題なさげだけど。
816デフォルトの名無しさん:04/10/06 15:03:24
まあ、ここは初心者スレだから無理に統合環境すすめなくとも
エディタ1本で行きたい人には行ってもらえれば良いと思ー。

iアプリの規模だと、それでもあんまし困らないしね。
817デフォルトの名無しさん:04/10/06 15:05:54
つーか、デバッグ情報はpreverify通すと消えるでしょ。
818デフォルトの名無しさん:04/10/07 01:11:08
>>817
そうなの?知らなかった。
確かに確認してみたことはないが。。
819デフォルトの名無しさん:04/10/07 01:12:10
>>804
「ビルドせずに実行してエラーが治らない」ってどういう状況?
ビルドしなきゃ実行できないと思うのだが。
で、ビルドできたら当然コンパイラーによるエラーは全部解決してるわけで。
820デフォルトの名無しさん:04/10/07 02:22:51
>>819
バグがでる→プログラム修正する→ビルドせずに実行→バグ治ってない

やってしまうとムダになやむ。
821デフォルトの名無しさん:04/10/07 02:57:48
JDK1.4.2_05、Doja3.5のeclipse2.1.1でiアプリを作成しようとしているのですが、
「プロジェクト」>「Doja3.5-設定」でADFを設定後、
Doja3.5用実行パターンを作って実行すると、
「AppSize(=0)<1 なので NG です」とコンソールに出て実行できません。

bin配下をみるとjarもjamもファイルはできているのですが、
jarは、やはり0KBとなっています。同様のフォルダ内に
0KBのtmpファイルも残っています。
どうしたら、正常にjarが作成されるかどなたかわかりませんか?

同様のソースをeclipseなしのツールでビルドすれば、
エミュレータで正常にみれました。
また、環境変数にJDKのパスは通しています。

すいませんが、どなたかわかる方教えてください。
822デフォルトの名無しさん:04/10/07 12:19:26
>820
あー、それよくやったわ。
あと通信するやつだとダウンロードデータを更新してなくて同じことになったり。
823デフォルトの名無しさん:04/10/07 22:10:50
>>819
そういうことか。たしかに時々はまるかもな。。
で、それってeclipseで解決できるん?
いつもEmacs使ってるんだけど、ちょっと興味があって。
824デフォルトの名無しさん:04/10/07 23:51:56
あどれす家だって登録してます?
ttp://www.adyada.com/
825デフォルトの名無しさん:04/10/08 00:48:38
宣伝業者にBREWスレが無視されてるのが悲しいね
826デフォルトの名無しさん:04/10/08 00:48:44
>>823
実行するときには、必ず保存確認してくる。
Eclipseの場合、保存=コンパイルだし。

同じ現象として、コンパイルエラーがでて修正して保存せずにコンパイルというのもある。
これまたムダにはまる。
プログラムになれてれば、ctrl+sはクセだし未保存マーク(*)ついてれば気持ち悪いから問題ないんだけど。
printlnをprintアイnとして悩むとか、それで1時間悩むなら、画面のちらつきをなくすにはどうしたらいいか、あ、lock()ね、とかで悩んだほうがいい。
827デフォルトの名無しさん:04/10/08 22:05:20
>>826
ああ、保存の確認をしてくるのね。納得。
しかし、printlnをprintinなんてしたらコンパイラが一発で教えてくれるだろ…。
まあ、いいたいことはわかる。
828デフォルトの名無しさん:04/10/08 22:19:04
>>827
printinとかエラーのあるコードを書いたら、
コンパイルしないうちにその場でバツ印が現れて、修正方法まで提示してくれるのが
Eclipseのすばらしいところですよ。
829デフォルトの名無しさん:04/10/08 23:52:41
うん。それは分かる。
ただ、普通にエディタとコンパイラ使ってても、
printinと書いてエラーになってるのを1時間悩みはしないだろ、ってこと。
830デフォルトの名無しさん:04/10/09 02:00:34
レベルひっく〜
831デフォルトの名無しさん:04/10/09 09:21:59
>>830
な…なんてレベルの高い書き込みなんだ…。
830みたいな高レベルな書き込みを見たのは初めてだ…。
832デフォルトの名無しさん:04/10/09 12:41:58
いや、ココ、初心者歓迎スレだからさ。
レベル高い話したいなら本スレで振ってくれや。

↓というわけで新規質問ドゾ。
833デフォルトの名無しさん:04/10/09 12:44:51
質問ですが、キャンバスを使ってパネルみたいな
テキストボックス(ユーザーが文字を打つ)を作ることは
可能でしょうか?
834デフォルトの名無しさん:04/10/09 13:05:33
>>833
やろうと思えば。
835デフォルトの名無しさん:04/10/09 13:29:31
>>834
パネルで簡単な物は作れたのですが
今度はキャンバスで同じ物にチャレンジして
みようかと思いまして・・。

参考になるようなサイト等ご存じ有りませんか?
836デフォルトの名無しさん:04/10/09 14:13:27
キャンバスでやるということは、全て自前で描画するということだ。
すごく大変だぞ。
ただまぁ、505以降なら直接IME入力を起動することができる。
テキストボックスに限ればそこそこいけるかもしれないな。
837デフォルトの名無しさん:04/10/09 14:56:32
>>836
そーなんですか、簡単じゃないんですね。
パネルだとなんか画面が物足りないような気がして。
パネルにgif貼って見栄え良くしようとしたんですが
その上に文字を出すと文字の下のへんが白枠?
みたいなもんが出てきて綺麗に文字だけ浮かび上がらなかったもんで。

ありがとうございました。
838デフォルトの名無しさん:04/10/09 15:08:53
>>829
printInと「本のとおりに」入力してるのに、エラーになる、なんでだ?
と思ってしまうと、はまってしまうようだ。
最初はコンパイルエラーの読み方もよくわかってないしね。
839デフォルトの名無しさん:04/10/09 15:25:55
>>838
恥をしのんで質問する。
printlnのlnとはどういう意味なんだ!?
それがわかりづらいから、初心者で printをInするんだな、とはまってしまう気がする
840デフォルトの名無しさん:04/10/09 15:44:53
lineじゃないのかな?
「Javaのメソッドの単語区切りは大文字」という規則に反するので、また大変。
841デフォルトの名無しさん:04/10/09 16:19:04
line newかな
842デフォルトの名無しさん:04/10/09 17:13:08
printlnのln
でぐぐったら出たw

lineの略らしい。
命名規則違反だぞー。


843デフォルトの名無しさん:04/10/09 17:22:56
怒られるのを覚悟して質問を・・・・。

Mainはabstractとして宣言する必要があります。componentAction(com.nttdocomo.ui.component,int,int)をMainで定義しません。
public class Main extends IApplication implements ComponentListener{
    ^

とは何が原因で発生しているのでしょう。。。?
ButtonImageを配置し、ComponentListenerをExtendsしたのですが・・・。
844デフォルトの名無しさん:04/10/09 17:41:45
implements ComponentListener
したということは、「ボクはComponentListenerを約束を守って使います」という宣言です。
なのでComponentListenerさんが決め手約束事を守らなければ怒られます。

で、その約束というのが
componentAction
を必ず用意しますということ。
これがないと、リスナーさんはどこにむけて「ボタンおされましたよー」と送ればいいのか
わからなくなってしまうので、必ず用意するようにと約束を決めたのです。
845デフォルトの名無しさん:04/10/09 17:46:47
>>844

何となく理解しました。
作成したボタンの宣言が足りていない事が原因と思われます。
今から修正してきます。

とても分かりやすい解説ありがとうございました。
846超ド素人:04/10/09 18:02:33
自作のマイコンと赤外線通信させたいのですが、可能っすか?
847843:04/10/09 18:27:07
う、すいません。

componentAction中に作成したボタン(btn[0]〜btn[25])
すべてに処理を割り当てたのですがまだ怒られてしまいます。

Googleで調べたところ、844さんと同じくメソッドが不足しているとの解答が見あたりました。
設定が間違っているのでしょうか・・・?(↓プログラム抜粋です)

public void ComponentAction(Component src, int type,int param){
if(src == btn[0]&& type == ComponentListener.BUTTON_PRESSED){
terminate();
}else if(src == btn[1]&& type == ComponentListener.BUTTON_PRESSED){
terminate();
                               ・
                               ・
                               ・
848デフォルトの名無しさん:04/10/09 18:38:33
>>846
赤外線リモコンアプリがあるので可能だと思う
http://orp.ptysp.jp
みてみ
849デフォルトの名無しさん:04/10/09 19:42:07
>>847
ボタンを処理したかどうかは関係ない。
単純に宣言したメソッド名が間違っているか、その引数が違っているかだ。
850843:04/10/09 19:45:01
>>849
まちがってました・・・。
ComponentActionになってました・・・。
^

おさわがせしました・・・。
851843:04/10/09 20:35:17
ボタンの話がでてるので俺も聞かせて下さい。

Panelでボタンを配置してると、たまにフォーカスが当たらないボタンがあるんだが
あれはなぜですかね?
852デフォルトの名無しさん:04/10/09 20:40:28
他の書き込みとまざった_| ̄|○

メッセで友達に質問してるつもりがこっちにフォーカスが当たってました・・・。
ボタンにあたらず、いらんところでフォーカスがあたっております。


因みに、友人は「携帯アプリはつくったことないからワカラン」とのこと。
本片手にやってるんですが、なかなかに難しいですね。
853デフォルトの名無しさん:04/10/09 23:26:12
DoJa-3.0+eclipse2.1.3+J2SE1.4で開発を始めようかと思うのですが
eclipseでjavaファイルを作成して実行しようと思ったのですが、
com.nttdocomo.eclipse.DoJaBuildException:Fail to create
C:\eclipse\workspace.\test\test.jar
とエラーが出るのですがなにがダメなんでしょうか?
どなたか教えてくださいorz
854デフォルトの名無しさん:04/10/10 13:03:45
>>853
解決しました
どうもbinまでPathとおってなかったみたいです
おさわがせしましたorz
855デフォルトの名無しさん:04/10/10 13:29:47
>>852
落ち着け。
Panelで、画面をスクロールするくらいボタン沢山配置すると、
ボタンのフォーカス切り替え>画面のスクロールになって
画面よりフォーカスが先に行ってしまい、当たっていないように見えることがあった。
1画面に納めるとダイジョウブじゃないか?
1画面以上できちんと動かすには・・・俺もワカラン。
856デフォルトの名無しさん:04/10/11 00:55:17
iアプリの開発って、JDK1.3じゃないと駄目ですか?
1.4だとエラーが出ると聞いたんですが。
857デフォルトの名無しさん:04/10/11 01:18:15
>>856
開発者なら、人に聞く前にまず自分で試してみろ。
失敗したからって命を落とすことはない。
858デフォルトの名無しさん:04/10/11 01:22:20
>>857
という意気込みがないヤツは、
時間をかけて教えたところで丸暗記するだけで、
自分で考える力が身に付かないし、
技術者としていつまで経っても使い物にならないってことだよ。
859デフォルトの名無しさん:04/10/11 01:24:15
>>856
エラーが出ると教えてくれた人に聞けば?
オレは1.4でやってるけど。
そしてJ2SE5でやるつもりだけど。
860デフォルトの名無しさん:04/10/11 03:16:06
J2SEのインストール・アンインストールなんて何分もかからんのだから自分でお試しなさい。
861デフォルトの名無しさん:04/10/12 21:02:45
・・・みんな環境の話ばっかり・・
862デフォルトの名無しさん:04/10/12 23:18:03
環境繋がりでひとつ
doja.exe -i app.jam -u [getSourceURL()で取得できるURL]
これでバッチファイルでの実行も可能になる。
既出だったら申し訳
863デフォルトの名無しさん:04/10/12 23:36:01
>>862
これをMakefileに書くとビルドと動作確認がいっぺんできて便利w
864デフォルトの名無しさん:04/10/14 21:43:41
質問ですが
DO-JA3.5を使い
パネルで
tb2 = new TextBox("", 150, 80, TextBox.NUMBER);
の様にしたのですが
F900iで確認すると数字モードにならず
普通の漢字入力モードになってしまうのですが
なにがおかしいんでしょうか?
865デフォルトの名無しさん:04/10/14 22:20:05
>>864
F900i
866デフォルトの名無しさん:04/10/14 22:24:42
>>865
でも他の方が作った同じ系統のアプリでは
F900i でもちゃんと数字モードになる物も
あるんですが・・・。

867デフォルトの名無しさん:04/10/14 23:36:19
>>864=866?

>でも他の方が作った同じ系統のアプリでは
>F900i でもちゃんと数字モードになる物も
>あるんですが・・・。

APIリファレンスをちゃんと確認してみ。
コンストラクタで渡すのは表示モード。
入力モードを設定したいなら
setInputMode();

F900iは関係ないよ。
868デフォルトの名無しさん:04/10/15 17:59:44
一番確実(メモリリークしない)かつ無駄のないImageの破棄の仕方はどうすればよいでしょうか?
今は下のようになっています。

Image image;
MediaImage mediaimage;

Dispose() {
 if (image != null) {
  image.dispose();
  image = null;
 }

 if (mediaimage != null) {
  mediaimage.unuse();
  mediaimage.dispose();
  mediaimage = null;
 }

 System.gc();
}

ImageとMediaImageの開放の順番や、ガベージコレクションの必要性がちょっと自信ないです。
また、同じImageとMediaImageに他の画像を再ロードする場合でも、このように一度破棄する必要はありますか?
869デフォルトの名無しさん:04/10/15 18:59:21
>868
本スレ iモード携帯電話用Java(iアプリ) Part 6
ttp://pc5.2ch.net/test/read.cgi/tech/1091286071/
の>23〜>40で解決。
870デフォルトの名無しさん:04/10/16 00:30:12
画像を以下の方法で収得したいのですがjava.lang.ClassNotFoundExceptionが発生してできません
画像Fileはresに置いてあります
なにが原因なのでしょうか?
String param="resource:///no";
for(int i=0;i<16;i++){
tileNo[i%4][i/4]=i;
MediaImage mImg=MediaManager.getImage(param+(i)+".gif");
871デフォルトの名無しさん:04/10/16 01:21:26
ClassNotFound?
872870:04/10/16 01:31:26
コンソールにはそうでてきましたけど?
873デフォルトの名無しさん:04/10/16 01:41:28
>>870
どのクラスが無いか一緒に書いてあっただろ?
874870:04/10/16 01:43:02
Startメソッドを持ったクラスがでてきました
875870:04/10/16 01:57:39
あ・・ADFにAppClassのところをpackage名から書くの忘れてましたorz
てっきり画像かんけいだと・・
どうもでした
876デフォルトの名無しさん:04/10/16 14:39:30
N900iでは320x320までのjpegまでしか使えないので、画像を
読み込み分割してから表示させるアプリを作ろうと思ってます。
DOJAでjpegやgifをバイナリーレベルで分割するためのサンプル
なんてないでしょうか。
877デフォルトの名無しさん:04/10/16 14:54:17
バイナリーレベルじゃなくて、画像展開した状態だろ?無理。
1024×768のjpegを320×320の細切れにして表示したいなら、
自前でjpegデコードするしか無いんじゃないか?
878デフォルトの名無しさん:04/10/16 15:32:08
なんで320x320の複数枚の画像を事前に用意できないの?
それが一番楽に思えるんだが。
879デフォルトの名無しさん:04/10/16 22:11:42
>>878
内蔵カメラをメモとして閲覧したいのでつ。
既存のものがあればそれを使いますが、ないので自分で作るしか
ないのかなと、、、
自前のデコードのプログラミングなんてなどちょっとスキルが
なさ過ぎて無理なので、サンプルコードとかないでしょうか。
880デフォルトの名無しさん:04/10/16 22:27:48
>>879
JPEGのエンコードのコードなんかは、ごろごろ転がってると思うけど。
881デフォルトの名無しさん:04/10/16 22:28:38
×エンコード
○デコード
JPEGのエンコードはデコードに比べるとかなりめんどくさい。
882デフォルトの名無しさん:04/10/16 23:57:32
すいません質問があります。

パネル上のテキストボックスやラベルのフォントサイズを大きくしたいのですが、

キャンバスの場合は Font クラスでサイズ指定しているのですが、
パネルの場合も Fontクラスを使用してフォントのサイズを変更するのでしょうか?
883デフォルトの名無しさん:04/10/17 10:36:50
PanelクラスにVisualPresenterでGIFアニメを表示させています。
ところが、GIFアニメによっては画像の一部が正しく表示されないのです。
(画像の一部が白抜きになったような状態の瞬間がある)

何が原因でどうすればなおるか教えてください。
ちなみにTickerは使用していません。
884デフォルトの名無しさん:04/10/17 12:19:33
>>882
実験してみたら?

>>883
>何が原因でどうすればなおるか教えてください。

甘えすぎ。
問題が出てる環境(機種)ぐらいは書いといてくれないと。

ちなみに、機種によっては、画像の一部のみを書き換えるGIFアニメが
正常に描画されない。
画像全体を毎フレーム書き換えるようなデータを表示させてみてうまく
いくかどうかを調べなさい。
885696:04/10/17 14:08:00
すんまそん、このスキンファイルの弄りかたの詳しい説明
が知りたいです。

698 :デフォルトの名無しさん :04/09/17 21:49:31
>>696

エミュのスキン設定ファイルに
font_size=12,20,24
を書き込む。
設定ファイル弄れば画面サイズも変更できる。
886デフォルトの名無しさん:04/10/17 14:36:50
>>885
skin.confというファイルを探しなさい
後は書いてあるとおりだよ
887696:04/10/17 14:43:36
ファイルが開けませんとでますorz
888デフォルトの名無しさん:04/10/17 14:58:08
>>887
ファイルを開く方法を小一時間考えろ
他人に質問するのはその後
889696:04/10/17 15:51:10
>>888
ご意見サンクス。出来ました。( ´,_ゝ`;)
で、
http://www.saturn.dti.ne.jp/~npaka/kvm/javapress/memopri/genkou.html
のページを参考にしたわけなんですが、
そのままテキスト貼り付けで、フォント指定したら
どうも動作が遅くなったようです。
一応前のファイルに戻したら、いままでの速さで動きました。
どこか間違いがありますか?(ヒントでも。。
890696:04/10/17 16:07:35
>>888
あと、ソースファイルを確認してもらうのにはどうやったらいいんでしょう?
一部貼り付けとかではなく、全部、
アプリのUPファイルだと見れないですよね?
今作ってるアプリを知り合いに観てほしいんですが(ネットの

プログラム初心者でソースとかよく分からないので全部確認してもらいたいんですよね。
iアプリの実行ファイルをUPするにはどうしたらいいんでしょうか?
質問がアホらしいのは重々承知でお願いします、!
(ヒントでも・・
891デフォルトの名無しさん:04/10/17 16:08:27
>>867
遅レススンマソ。
出来ましたありがとうどざいました。
892デフォルトの名無しさん:04/10/17 16:50:57
>>890
うpろだ
で検索しる
893696:04/10/17 16:56:51
>>888
UPローダで検索ですよね?
それだと、怪しいサイトばっかり飛ぶんですよねなんか・・
大丈夫かな・・・
894デフォルトの名無しさん:04/10/17 17:12:55
メッセンジャーで送れ
895696:04/10/17 17:37:55
ヤフーメッセ?
相手知らないし怖いよ。
896デフォルトの名無しさん:04/10/17 18:17:00
sagaってなんだよw
897デフォルトの名無しさん:04/10/17 19:53:20
ネットの知り合いに見て欲しいといいながら、メッセンジャーでは相手知らないし怖いとか
わけわからんやつだな。メールにソースファイルを添付して送ればいいだけのことだろ。

実行ファイルをUPして意味あるのか?
相手がDoJaエミュ持ってるならソースとADF渡せば済むことだ。
898870:04/10/18 20:25:27
質問なんですが
描写可能領域が違う機種などではその機種用に
あらかじめ画像を拡大縮小しなければならないんでしょうか?
899デフォルトの名無しさん:04/10/18 20:30:35
そんなことはないけど、中央とか左上とかに小さく表示されたりするので格好悪い
900898:04/10/18 20:35:32
表示可能ならまだいいですけど、サイズが大きい機種ものを基準作成にした場合
サイズが小さいほうの機種用には縮小した画像を用意しなければならないのでしょうか?
901デフォルトの名無しさん:04/10/18 21:03:33
>>900
自分がどうしたいかで決めろ。
センタリングして周囲が切れても構わないなら同じ画像のままで行けばいいし、
画像全体を画面に入れたいならリサイズした画像を用意するしかない。
ハード側で自動的にリサイズしてくれる機能はない。
902デフォルトの名無しさん:04/10/18 21:05:23
>>900
そうですか
わかりました、どうもでした〜
903デフォルトの名無しさん:04/10/19 01:30:19
ハード側で、というより、拡大縮小したいなら自分で拡大縮小しないと、基準画面サイズにあわせて自動的に拡大縮小してくれるようなAPIがない、というだけの話だね。
904デフォルトの名無しさん:04/10/19 03:32:25
音楽データ(mld)は何のソフトを使ってどのように変換するのがよいのでしょうか?
機種依存がかなりややこしいみたいなんですが。
905デフォルトの名無しさん:04/10/19 09:59:11
>>904
psmplayer
906904:04/10/19 22:21:23
psmplayerのどの形式で作ってますか?
907デフォルトの名無しさん:04/10/20 09:06:43
機種ごとに出力できるだろうにヽ(;´Д`)ノ
一番低レベルでやれば、ほとんどの機種で鳴るよ。
908904:04/10/20 12:36:26
すいません、できれば一般的というか、大抵の作者がやっている方法が知りたかったのでした。
一番低レベルの4和音だとドラムが鳴らせないのですが、
一般に出回っているアプリの中には結構ドラムを使っているものが多いですよね?
ドラムを鳴らせる16和音だと結構機種依存が強くなると思うのですが、
普通はどのように対処しているのでしょうか。
909デフォルトの名無しさん:04/10/20 13:50:57
4和音でも、きちんと3〜9を「使用していなければ」ドラムの10番が含まれるよ
910デフォルトの名無しさん:04/10/21 08:10:13
既出だったらスミマセンが、教えてください。

iアプリで最寄の発信基地を取得するロジックは組めますでしょうか?
ちょうどiエリアのように今いる大体の地域を取得することをしたいと思ってるんです。
取得できる範囲は市での範囲が望ましいのですが県単位でもいいと思っております。
想定対象機種はFOAM900シリーズかムーバ505以降と考えております。

ご存知の方何卒お教え下さいますようよろしくお願いします。
911デフォルトの名無しさん:04/10/21 12:21:30
>>910
組めません。
アプリからわかるのは、圏内/圏外の情報ぐらいです。
912デフォルトの名無しさん:04/10/21 15:07:59
900i系列の拡張API実装状況が
載ってる資料とかってないですかね?
505のやつはあったんですが…
913デフォルトの名無しさん:04/10/21 15:32:37
>>912
公式には上がってないっぽいけど、存在はしてる。
914910:04/10/21 23:09:54
>>911

ありがとうございます。何かいい手はないでしょうか・・・?GPSを使う以外にどこにいるかを大まかにわかるファンクションって無いかな・・・っておもってます
915デフォルトの名無しさん:04/10/21 23:34:28
>>914
iエリアのサイトを開設して、そこから位置情報を取得
916デフォルトの名無しさん:04/10/21 23:36:49
公式サイトならDXにすればiエリアが使えるカモ
一般ならGPS付でないと無理だから、手で入力してもらうしかないぽ
あとは、アプリからブラウザ呼び出し→オープンiエリア→パラメータ付けてブラウザからアプリ起動、とか?

古い機種だと使えないし、本当に動くかどうかは知らん
917デフォルトの名無しさん:04/10/21 23:48:28
質問です。
PanelからCanvasにsetCurrentでカレントを移す、
という処理を作ったのですが
切り替えるところで画面が一瞬ちらついてしまいます。
なんとかちらかさせずに切り替える方法はないものでしょうか?
918デフォルトの名無しさん:04/10/22 03:28:57
エミュレーターだと動くのに実機(P900i)だと強制終了してしまいます。
やってることはmyCanvasのpaint内でfillRectしてるだけっす。
なんででそ。
919デフォルトの名無しさん:04/10/22 04:26:04
>>918
jamにAppTrace = onを書くとか、
例外やエラーをcatchしてダイアログを表示するようにプログラムを書くとか汁

どんなエラーがどこで起きているのかを調べるべし
920デフォルトの名無しさん:04/10/22 10:26:59
919に勝手に補填。

初心者と上級者の違いは、デバッグができるかどうか。
コードを書くだけならどっちもできるのよ。
がんばれ。
921デフォルトの名無しさん:04/10/22 12:00:37
>>918
fillRectの引数に負の値を入れてるんじゃないか?
922デフォルトの名無しさん:04/10/22 14:40:31
まぁ、最初は fillrectやsetcolor で実機でコケて勉強しなさい
923デフォルトの名無しさん:04/10/22 15:31:23
「Action」を「Avtion」と書いて宣言してしまったことならある
924sage:04/10/22 16:53:11
質問失礼します。

サーバーに上げてあるCGIにアクセスし
java.lang.SecurityException : Illegal host
と怒られます。

jarを置いている場所は2つあります。
サーバーA:
http://www.*.ne.jp/~hogehoge/
PrjC.jar PrjC.jam w.cgi r.cgi t.txt

サーバーB:
http://homepage.*.com/hogehoge/
PrjC.jar PrjC.jam

アクセスプログラムは
wurl= new String("http://www.*.ne.jp/~hogehoge/w.cgi");
wconnect= (HttpConnection)Connector.open(wurl,Connector.READ_WRITE,true);
wconnect.setRequestMethod(HttpConnection.POST);
wconnect.setRequestProperty("Content-Type", "text/plain");
この様にやってます。

症状が変で、サーバーAのPrjC.jarのプログラムはCGI実行可能なのですが、
サーバーBのみ駄目なんです。

なんででしょう。。。???



とりあえず、sageときますね(w
925デフォルトの名無しさん:04/10/22 17:13:33
926sage:04/10/22 17:26:58
>>925
なる。
助かりました。
ありがとうございます。

っていうか「仕様書読め」って事ですな。。。
スイマセソ。



とりあえず、sageときますね(w
927デフォルトの名無しさん:04/10/22 17:27:28
途中まで
「基本中の基本だろ…しょうがねぇなぁ…sageも間違えてるし
 まぁ質問ならageてくれたほうがいいしな。さてとレスするか」

と読み進めていたのに、最後の

>とりあえず、sageときますね(w

で釣りか荒らし野郎か小学生と判断した俺。
928デフォルトの名無しさん:04/10/23 15:12:11
>>919
デバックモードってのがあったんですね。
知りませんですた。
ありがとうございました。
929デフォルトの名無しさん:04/10/23 16:24:31
デバックって言うな
930デフォルトの名無しさん:04/10/23 16:49:27
>>929
でばぐっすか。

結局原因はsetColorの値を16進数でぶち込んでた事みたいで、
getColorOfRGBでやったらいけますた。
みなさんどうもでした。
931デフォルトの名無しさん:04/10/23 23:09:50
ttp://homepage3.nifty.com/com/
にある「iアプリ作成ツール」みたいなので4択にできるものってないですかねぇ・・・
932デフォルトの名無しさん:04/10/24 01:01:36
>>931
ソースがあるんだから改造すればいい。

プログラムが書けるなら十分直せる程度の簡単なソース。
933デフォルトの名無しさん:04/10/24 01:02:50
>>931
簡単なクイズアプリなら自分で作った方が
早いし面白いし勉強になるし、良いぞ。
934デフォルトの名無しさん:04/10/24 14:09:31
やばいっすよ。Javaの立場。

J2MEに脆弱性。携帯電話のJavaアプリに影響
ttp://www.itmedia.co.jp/enterprise/articles/0410/23/news013.html
935デフォルトの名無しさん:04/10/24 15:20:30
そろそろ大きい革命がほしいところだよね。
BREWだけは絶対嫌だけど…。
936デフォルトの名無しさん:04/10/24 21:25:15
確かにBREWだけは嫌だね。
ユーザーが無料でサクサク作れなきゃ。
937デフォルトの名無しさん:04/10/25 01:38:06
>>910
iエリアの情報ってたしかとれたはず
pdfのよんでみ
938デフォルトの名無しさん:04/10/25 13:31:44
ユーザーが無料でサクサク作れなきゃ。っていうのは同意したい気持ちがあるのだが、
実際はそんな「フリー作者」は使用者の1%にも満たないため、業界では無視されている現実がある。
939デフォルトの名無しさん:04/10/25 13:38:39
業者が無料でさくさく作れなきゃ
940デフォルトの名無しさん:04/10/25 14:04:02
アプリでメール情報っていじれませんか?
941デフォルトの名無しさん:04/10/25 14:29:12
>>938
だけど、そのフリー作者のアプリを愛用している人は結構いると思うよ。
942デフォルトの名無しさん:04/10/25 14:30:37
>>940
過去ログ嫁
マニュアル嫁
ムリ
943デフォルトの名無しさん:04/10/25 15:31:07
>>942
参照だけならいいですか?
944デフォルトの名無しさん:04/10/25 15:36:12
DXiアプリならな。
つうかあのガチガチのXStringみていじるの無理ってわからんのかね。
参照除法をdrawStringしたCanvasやImageは、その後getPixels系を一切非許可にされるほどの徹底ぶり。

drawStringして、画像比較すればデータ盗めるぜウフ。とか思ってたのになんだあのガードの固さは
945デフォルトの名無しさん:04/10/25 15:48:39
そうか、ありがとぴょん。
946デフォルトの名無しさん:04/10/25 16:45:21
>>944
メッセージ読み込めるか?
947デフォルトの名無しさん:04/10/25 17:45:17
>>946
メッセージ?
なんのことだ?

ところで、>>944の参照情報が、参照除法になってた(;´Д`)
948デフォルトの名無しさん:04/10/25 18:28:16
>>947
メールのメッセージ。
949デフォルトの名無しさん:04/10/26 09:20:44
取得できなくてどうすんだよ('A`)
getBodyだろ
950デフォルトの名無しさん:04/10/26 10:18:10
それは、どのバージョン?
すくなくとも3.5のMailクラスにはgetBodyはないし、「本文を取得することはできません。」と書いてあるよ。
ドキュメントが古いのかな。
951デフォルトの名無しさん:04/10/26 10:19:26
あ、MailDraftね。
952デフォルトの名無しさん:04/10/26 10:20:23
でも、これって、自分でsetBodyしたものがgetできるだけじゃないの?
953デフォルトの名無しさん:04/10/26 13:20:25
getbodyはiアプリ関係なくね?
954デフォルトの名無しさん:04/10/26 13:57:34
Message#getBody?
これもメールっぽいけど、MailとMassageってどう違うの?
955デフォルトの名無しさん:04/10/26 15:23:09
え゙…MailDraft#getBodyって既存の本文読めないの?
956デフォルトの名無しさん:04/10/26 15:24:50
Messageはデラックスiアプリで送信した、アプリ専用メール。
Mailは普通のメーラーやらPCから送られたメール。
957デフォルトの名無しさん:04/10/26 15:31:40
>>955
だって、Draftだよ。
958デフォルトの名無しさん:04/10/26 15:32:53
>>956
デラックスiアプリのメールって、アプリでしか使えないの?
PCとのやりとりとかだめ?
959デフォルトの名無しさん:04/10/26 16:36:03
>>958
アプリ間で送るのを想定してるはずだが…。

専用とはいっても、そのアプリを持っていないと普通のメールとして見られる。
そこの本文には「このメールは○○アプリ用のメールです。〜〜からDLしてください」
とか書いてあるのが普通。
960デフォルトの名無しさん:04/10/26 17:17:23
>>959
普通のメールは読めないんだね。
961デフォルトの名無しさん:04/10/26 17:37:37
普通のメールは無理だな。
ぷらいばしぃとかいうやつかね。
962デフォルトの名無しさん:04/10/27 00:42:23
キャンバスからパネルにsetCurrentを移す時
newでパネルのコンストラクタを呼んでますが
キャンバスにカレントを戻してまたパネルに行くと
パネルは2つになるのでしょうか?
繰り返してると動作が遅くなってるように思うので、、、
お願いします
963デフォルトの名無しさん:04/10/27 02:21:58
>>962
キャンバス→パネル(1)→キャンバス→パネル(2) だとして。
パネル(1)からキャンバスに移ったあと、パネル(1)への参照は保持してないよね?
それなら次にパネル(2)へ切り替えたとき、パネルが2つになるってことはない。

パネルからキャンバスへ戻したあと、キャンバス側から明示的に
捨てたパネル = null; System.gc();
とでもしておけばメモリ圧迫の心配はとりあえず回避できる。
動作が遅くなる原因がメモリの圧迫以外ならあとはシラネ
964デフォルトの名無しさん:04/10/27 07:26:29
パネルへの参照?
Currentが他へ移動した時って表示中だった画面は
後ろに回されるだけなのかな?明示的に破棄しないと
よくわからんけど、仕事中に本読みなおします
965デフォルトの名無しさん:04/10/27 10:03:16
Pannelを何度も生成したとき、前のPannelを破棄しない(参照全部なくなってるのに)馬鹿機種がある。
Canvasはそうならないとは保証できない。
966デフォルトの名無しさん:04/10/27 10:27:52
ぱんねる?
967デフォルトの名無しさん:04/10/27 12:52:29
ふぁんねる?
968デフォルトの名無しさん:04/10/27 13:39:31
ファンケル?
969デフォルトの名無しさん:04/10/27 14:05:23
ユンケル?
970963:04/10/27 14:12:44
>>964
取り外したPanelなりCanvasなりの参照をどこかのオブジェクトが保持していれば、
Frameから外されたからって勝手にメモリ上から消されることはない。
保持してない場合、ガベージコレクタがそのオブジェクトにどう働きかけるかは実装依存。
参照がなくなった時点で対象となるのか、明示的にnullを代入するまで対象とならないのか。
>>965のPanelはそのことを言っている。
それならプログラマが明示的にnullを代入してSystem.gc()を書いてやった方が
精神的によろしいかと…w

ところで「後ろに回される」を、Frameが重ねて持ってるという意味で
言ってるなら間違え。どこかに避けておくという意味でならOK。
「Frameは1つのオブジェクトしか表示できない」とリファレンスにあると思うが
これは重ねて乗せるから最上面のものしか見られないということではなく
Frameに乗ってるものを取り外して別のものを乗せ替えるって仕組みだから。
971963:04/10/27 14:32:10
>>970で訂正。ちょっと弱気でw
× >>965のPanelはそのことを言っている。
○ >>965のPanelはそのことを言っているのかな?

まさかnullを代入してるのにGCの対象にならないってことはさすがにないと思うので…
「いや〜そういう実機の不具合があるんだよ」ってことなら見当違いのこと書いてスマソ

Panel p = new Panel();
p = new Panel();
最初に生成したパネルpはnullが代入されておらず、しかしどこからも参照されない。
この場合、即座にGCの対象とならずにメモリ上に残り続けてもおかしくはない。
こういうときのためにもGCはメモリが圧迫されてきたら自動的に発動することになって
いて、そのときにこの「最初に生成したパネルp」は回収されることになる。
(逆にこういうインスタンスを作ってしまうことがメモリ圧迫の原因であるとも言える)
972デフォルトの名無しさん:04/10/27 15:34:40
iアプリの問題は、GCされてもリソースが開放されないことがあることなんだけど。
973デフォルトの名無しさん:04/10/27 15:38:19
あと、インスタンスがメモリを圧迫することが問題になることはあまりなくて、ネイティブのリソースが足りなくなることが問題なんで、Java言語のことだけ考えてもあまり意味がない。
974963:04/10/27 15:42:32
>そのときにこの「最初に生成したパネルp」は回収されることになる。

そのときでさえ「最初に生成したパネルp」を回収してくれなくて、とにかく
nullが代入されたものだけが対象なんだ、っつーGCならホントたまらんな。

連書きすまん。そろそろ消える。
975デフォルトの名無しさん:04/10/27 15:46:52
>>972-973 うわ、オレずれたこと言ってたか。 ハズカシイ…ヤッパキエルヨ…
976デフォルトの名無しさん:04/10/27 15:46:58
> nullが代入されたものだけが対象なんだ、っつーGCならホントたまらんな。

Javaの変数とオブジェクトの関係をわかっていないような発言だな。
977デフォルトの名無しさん:04/10/27 15:50:50
>>975
オレが悩んだのが、Imageを使い終わってImage#disposeしても、MediaImage#unuseしないとリソースが開放されなくて、しばらく使ってるとアボーンということがあった。
だから、うっかりMediaImageから手を離してGCされてしまうと取り返しのつかないことに。
正確な記憶じゃないし、開発中の端末での話だから、リリース時にはそうならないかもしれないけど、そんな感じ。
978デフォルトの名無しさん:04/10/27 15:54:13
979デフォルトの名無しさん:04/10/27 15:57:39
>>975
メモリの空きをRuntime#freeMemoryで取得して表示してみたら、ガンガンあいてたりする。
980デフォルトの名無しさん:04/10/27 17:20:14
画像を加工(白黒など)して出力するアプリを作ろうと思っています。
そこでどうしても上手く行かない部分があるのでご助力お願いします。

ひとまず全体の流れとしては、

getImageでスクラッチパッドから画像を読み込み、
getRGBPixelsでカラーコードを取得し、
そのカラーコードに色々な処理を行った後、
createImageで再びイメージを生成し、保存する。

と言った感じなのですが、getRGBPixelsはImage型には適用できない様です。
画像をGraphics型で読み込む、もしくはImageをGraphicsに変換する、などの処理が行えれば解決出来そうなのですが、
その方法が分かりません。

どうすれば良いのでしょう…(´・д・`)
981デフォルトの名無しさん:04/10/27 18:16:24
>>980
Image::getGraphics
982デフォルトの名無しさん:04/10/27 21:16:47
         ☆ チン     マチクタビレタ〜
                         マチクタビレタ〜
        ☆ チン  〃  Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ ___\(\・∀・) < 次スレまだ〜?
             \_/⊂ ⊂_ )   \_____________
           / ̄ ̄ ̄ ̄ ̄ ̄ /|
        | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
        |  愛媛みかん  |/
983デフォルトの名無しさん:04/10/27 21:30:28
ImageMapを使用してみたのですが、
配列をセコセコ増やしていたら
「ALERT: Maximum byte code length (32kB) exceeded」
と出てエミュが起動できなくなってしまいました…。

もしかしてでかいの無理ですか?(;´Д`)
984デフォルトの名無しさん:04/10/27 22:04:31
985デフォルトの名無しさん:04/10/27 22:46:45
>>983
でかい配列は無理。外に出すとか文字列リテラルにするとか汁
でかいメソッドも無理。分割汁
986デフォルトの名無しさん:04/10/28 02:00:46
>>971
> Panel p = new Panel();
> p = new Panel();
> 最初に生成したパネルpはnullが代入されておらず、しかしどこからも参照されない。
> この場合、即座にGCの対象とならずにメモリ上に残り続けてもおかしくはない。
こいつはGCの仕組みを知ってるんだろうか。
そもそも参照型とは何なのか理解してるんだろうか…。
こんな知識で文句言われる方もたまったもんじゃないよな。。
987デフォルトの名無しさん:04/10/28 04:04:37
調子こいちゃって反省してるみたいだしそっとしといてやれ
988デフォルトの名無しさん:04/10/28 06:00:11
良く分からん
明らかにゴミになったんだからGCの対象になるんじゃないの?
989デフォルトの名無しさん:04/10/28 06:42:58
ここは>984で本スレ合流ってことでいいのかな
990デフォルトの名無しさん:04/10/28 06:43:46
Javaが管理するオブジェクトと、ネイティブのリソースは別問題、という話。
オブジェクトがGCされるときに管理するリソースを解放するべきだとは思うが。
991デフォルトの名無しさん:04/10/28 09:04:21
>>988
なるよ。言語仕様の上では。
でもPanelはnull代入しても解放しない糞機種がある。
NとかNとかNとかね。あとP503かな。
992デフォルトの名無しさん:04/10/28 14:08:16
>>984
ていうかそこ初心者用じゃないよね(汁
993デフォルトの名無しさん:04/10/28 14:29:01
毎フレームGC呼びまくりながら残りheapを表示させると面白いよ。
Nとか残りがなくならない限り実際にはGCは発生しない。
994デフォルトの名無しさん:04/10/28 14:44:12
>>992
結局初心者歓迎だろうが歓迎じゃなかろうが、あまりかわってない。
使いわけられてもいない。
995デフォルトの名無しさん:04/10/28 18:36:21
次スレ立てようか?
996デフォルトの名無しさん:04/10/29 01:30:27
>>991
だからnull代入しようがしまいが変わらないってば。
その糞機種はどっちでも開放しないんでしょ?
そもそも「null代入しても」って書く時点で分かってない証拠。
997デフォルトの名無しさん:04/10/29 01:31:38
>>993
いかにSystem.gc()することに意味がないかを如実に表すエピソードですね。
998デフォルトの名無しさん:04/10/29 13:01:01
>>996
初心者に分かりやすく噛み砕いてるのに、分かってるとか分かってないとか言われてもなぁ。
なら俺の代わりに、上級者からも初心者からも理解されるようなすばらしい説明をしてくれ
999デフォルトの名無しさん:04/10/29 13:14:55
PanelがGCされてもリソースが解放されない機種がある
System#gcしてもGCしない機種がある
言い訳キター(゚∀゚)ーーー
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。