アフィリエイト広告を利用しています
最新記事
日別アーカイブ

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

2012年06月14日

文字列の比較について

今まで勘違いしていたので、ここに書かせていただきます。

文字列はオブジェクトのため、文字列の比較は、以下のようにしなければなりません。

String aaa = "123";
String bbb = "123";

if(aaa.equals(bbb)) {
System.out.println("aaa = bbb");
}

以下のようにすると、インスタンスの比較になるので、
文字列の検索ができません。

if(aaa == bbb){
System.out.println("aaa = bbb");
}
posted by FJT at 00:05| DoJa

2012年06月10日

配列のコピーについて

DoJa の開発で困ることの第一位は、配列の編集機能が乏しいことだと思います。
可変配列など、Vactor でなければなりませんし、通常の配列ではたいしたことはできそうにありません。

先日、オブジェクトを探している中で見つけたのですが、
System オブジェクトに arraycopy メソッドがあります。
これは、配列を新しい配列にコピーするためのメソッドのようなのですが、
自作処理で、可変配列をシミュレートしている部分があったので、
そのまま入替えてみました。

今まで for ループで処理していたものが、ネイティブの1処理で用事が済むようになりました。
ネイティブといっても、まあコンパイルするので、大きく速度に差が出るとは思えませんが、
それでも、配列についてのサポーだけでも幸いです。
ちなみに、配列の clone メソッドはエラーで、正常に使えたためしがありません。
おそらくですが、基本型の配列コピーしかサポートしていないのでしょう。
(実験していません。)


posted by FJT at 00:29| DoJa

2012年06月07日

ListBox について

今回は ListBox についてご紹介します。

LstBox は、その引数によって、表示形態が変わります。

ListBoz list = new ListBox( [ダイアログの形], [ダイアログのタイトル文字] );
list.setText("あいうえおかきくけこ")
list.show();

さて、[ダイアログの形]引数は以下の種類があります。
すべて ListBox の静的プロパティです。

・RADIO_BUTTON
 ラジオボタンです。ひとつだけ選択できます。

・CHOICE
 プルダウン式のリストです。
 クリック時に項目が展開されて表示されます。

・SINGLE_SELECT
 ひとつだけ選択しますが、全項目が展開されて表示されています。

・NUMBERED_LIST
 数値リストです。

・MULTIPLE_SELECT
 複数選択できるリストです。
posted by FJT at 23:04| DoJa

2012年06月04日

配列について(続)

配列について、より詳しくわかったことを書きます。
DoJa で扱える配列は3種類あります。
それぞれ、やりたいことに合わせて使います。

・配列
 通常の配列です。一番処理が速いといわれています。
 整列されている処理に向いています。

・Hashtable
 ハッシュテーブル、つまり、連想配列です。
 キーについても Object 型を使います。
 データ検索に向いています。

・Vector
 可変長配列です。
 頻繁に項目数が変動するものに向いています。


posted by FJT at 00:22| DoJa

2012年05月27日

コメントの書き方

javadoc のコメント記述方法についてご紹介します。
Java で関数を作成したときに、一定の法則で定義したコメントを一緒に記述しておくと、
この関数についての簡易的なヘルプを参照することができるようになります。
コードの再利用性を考えると、ぜひ作成しておきたいものです。

やり方ですが、以下のコメントを入れます。
/**
* 関数の定義です。

* 2行目です。
*/
コメント開始を「/**」にするだけです。

コメント中では、以下の主な記述が使用できます。
・@param 引数の解説
・@return 戻り値の解説

なお、これは、変数定義にも使用できます。

/** ダミー値(初期値は -1) */
private int dummy = -1;
posted by FJT at 07:19| DoJa

スクラッチパッドについて(続)

即起動モードで、スクラッチパッドが読込できなくない制限があるという
お話をしたと思いますが、どうやら、設定に問題があるようです。
詳しくはまだわかりませんが、ADF で一緒に行なっている設定が原因なのかもしれません。

引き続き調査します。
posted by FJT at 07:14| DoJa

Internet Explorer で jQuery ajax

今回は文字コードのお話です。

Internet Explorer で ajax を使う場合、文字コードに気を付けなければなりません。
ajax は仕様上、UTF-8 で送信しなければならないようですが、
Internet Explorer で shift_jis ページ内に javascript を置いた場合、
shift_jis で ajax 送信してしまうようです。

ajax を受け取るプログラムで、UTF-8 を期待していたために、
文字が化けてしまい、困った現象になりました。

対応方法ですが、送信ヘッダに UTF-8 で要求するように設定します。
jQuery では、以下のように設定します。
jQuery.ajax({

contentType:"application/x-www-form-urlencoded; charset=utf-8"
});

contentType の初期値は "application/x-www-form-urlencoded" ですが、
これに、UTF-8 であることを明記します。

これで、送信時に UTF-8 で送られることになり、Internet Explorer 独自の
文字化け問題にも対応できると思います。


posted by FJT at 01:12| javascript

クラスの定義について(続)

以前、クラスは1ファイルにまとめるべきだと書きましたが、
クラスを分割したほうが使いやすいですね。
iアプリの容量制限に引っかかりそうな時だけ
ビルド時に気にすればいいかなと思います。

クラスをファイルごとに分けることについて、以下のメリットがあります。

・再利用が可能になる。

・コードエディタのレスポンスが早い。

・コードの独立性が高くなる。
 クラスを1ファイルにまとめると、親クラスのオブジェクトが private であっても参照できたり、
 クラスでは定義していない広域変数などが参照できる。

ということで、クラスファイル化推進に寝返りました。


posted by FJT at 00:55| DoJa

2012年05月25日

for in 構文は使わない

久しぶりにハマりました。

モダンブラウザでは使えるようになりましたが、
IEの8以前では、for in の構文が使えなかったんですよね。

for(var item in collection)

VBScript の for each と似ていますが、javascript では少々使いづらい構文です。
たとえば配列の列挙を行ったとして、length などのプロパティも一緒に
ループに入ってくる場合があります。

まだ、普通の for が無難でしょうね。
posted by FJT at 06:16| javascript

2012年05月24日

Sprite について

今回は、スプライト機能についてご紹介します。

通常、Canvas に描画をする際は、Image で画像を貼り付けたり、
Graphics で線などを描いたりしますが、
キャラクタものについては、Sprite を使用します。

昔懐かしい、8ビットの MSX から存在していた機能ですが、
MSX のころは、完全にグラフィックと分離していました。
画面をクリアしても、スプライトはしぶとく残っているような状態だったのですが、
DoJa では、Canvas に上書きする要素として定義されているようで、
Graphics.clearRect などで画面クリアすると、一緒に消えてしまうようです。

そうすると、何もメリットが内容に思えますが、
Sprite は、描画する際には SpriteSet として書き込みます。
つまり、Sprite をまとめて描画するわけです。

そして、Sprite どうしで重なっているのかどうかを判定して返してくれる機能があります。
これで、たとえばシューティングゲームの障害物接触判定などに使えるわけです。

Sprite を定義する際には、Image が必要です。
画像を入れておくか、createImage で領域を決めておいて
Graphics で描画するかですね。

// 画像を適当に定義します。
Image i = Image.createImage(10, 10);
// Sprite を作成します。
Sprite s = new Sprite(i);
// もうひとつ、Sprite を作成します。
Sprite s2 = new Sprite(Image.createImage(1, 1));
// SpriteSet を作成します。
SpriteSet sst = new SpriteSet(new Sprite[]{s, s2});
//Graphics(g とします) に描画します。
g.drawSpriteSet(ss);
posted by FJT at 06:28| DoJa
プロフィール
FJTさんの画像
FJT
使えそうな技術情報を掲載しています。 ぜひ、役立ててください。
プロフィール
リンク集
×

この広告は30日以上新しい記事の更新がないブログに表示されております。