processing のキャンバス上に swing コンポネーションを配置してみた
今まで知らなかったんですが、mac で java.awt._ を使用した入力フォームだと日本語入力が出来ないようです(IMEが日本語に切り替えれない)
これゲームのチャット機能とか考えると致命的な致命傷だったんで、Swing の入力フォームを使うようにしてみました。
Mac とかでゲームする人いないんでーw日本語はサポートしない(キリッ とかでもよかったんですが、まぁ自分が一番困りそうなのでw
公式Wikiの http://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 は色々と情報を取得してるんですが、今回はそれを使ってないので何か困ったこと起きるかも。