NetBeans

VJ#の変態的な環境はまったく汎用性がないので、いくら突き詰めても自己満足だと感じました。そこでSunのJDKを使うことにしました。環境構築など考えなくても使えるNetBeansセットのJDKを使います。

VJ#で書いたものをMemoryImageSourceを使ってPure Javaで書き直しました。以下の点に引っ掛かって少し苦労しましたが、何とか動くようになりました。

  1. MemoryImageSourceに渡すint配列はα値が考慮されるため、白色のつもりで0xffffffのように指定しても何も描画されない。
    • 0xffffffffのように指定する必要がある。
  2. MemoryImageSourceで作ったImageをdrawImage()すると、Observerに指定したコンポーネントがすぐに呼ばれて無限ループになる。
    • Observerをnullにすることで回避。
  3. createImage()にComponentのインスタンスが必要。
    • Toolkit.getDefaultToolkit().createImage()とする。
1は気付くまでかなり苦労しました。何をやっても何も描画されないので、どこが悪いのか途方に暮れました。でもどうにか解決して良かったです。慣れない環境では勘が働くようになるまで地道に癖を覚えていくしかありません。

Javaについて

C#は好きですが、やはり囲い込みの感は否めません。Monoはありますが、Javaにはgcjがあります。gcjを低レベルで使う方法があるため、VM言語という枠を超えてC++と同じように接することができます。そのため自分の中で、低レベルから高レベルまでをカバーする言語としてのJavaのイメージが確立して、作り込むならJavaと考えるようになりつつあります。
Java界隈ではEclipse一色という感じですが、NetBeansもなかなか悪くないので、とりあえずこのまま進めてみます。
カテゴリー: Java パーマリンク

コメントを残す