processing のキャンバス上に swing コンポネーションを配置してみた

Share photos on twitter with Twitpic


今まで知らなかったんですが、mac で java.awt._ を使用した入力フォームだと日本語入力が出来ないようです(IMEが日本語に切り替えれない)


これゲームのチャット機能とか考えると致命的な致命傷だったんで、Swing の入力フォームを使うようにしてみました。


Mac とかでゲームする人いないんでーw日本語はサポートしない(キリッ とかでもよかったんですが、まぁ自分が一番困りそうなのでw


公式Wikihttp://wiki.processing.org/w/Swing_JSliders を参考にしました。

環境

scala 2.9.1
processing 1.5.1

やってること

  • PApplet(java.awt.Applet) に直接コンポネーションを add しても動かないので、JPanel を一枚噛ませてる。
  • PApplet は別スレッドで独自にループしているので、常に processing の描画が手前に来てしまう。なんで processing の描画(paint)の後にコンポネーションの paint を呼ぶ。
  • Border がちらつくので、paint の変わりに paintComponent を呼んでる。setBorder(null) でも良い気がしますが、こっちの方が少しでも早そう感があったので。。。

注意

・JList とかを processing のキャンバス上に置くとちらつく;ω;使うのは TextField だけにして他は自作するのがいいかもorz
・公式wiki でも使ってる方法なので大丈夫とは思いますが、PApplet#runSketch は色々と情報を取得してるんですが、今回はそれを使ってないので何か困ったこと起きるかも。