proce55ing PApplet(3)

  • 一旦JavaのクラスFooにメソッド X があるとき、インスタンス化したfooをJython世界で作ったとして、以下のようにメソッドを再定義することはできない。
>>>foo=Foo()
>>>foo.X = do_something 
can't assign to this attibute in java instance: X
  • JButton の actionPerformed が再定義できるように見えるのは、実際はリスナーの登録/削除を行っているから。JButton を継承して自分で actionPerformed を定義すれば、ホンモノのメソッドになるので、やっぱり再定義できなくなる。TODO; Jython の名前解決の順序と関係。
  • 今のところ PApplet に手を入れてやれば、draw() を対話的に設定できることが分かった。実際はイベントオブジェクトをでっちあげ、リスナーの登録/削除に相当することをやれるようにいじっただけ。気付いてしまえば単純な話だった。Python-style Event listener ってことだ。
  • なるべく Processing 本体に手を加えずにうまくやれないか検討。
  • LL future で素晴らしいデモがあった action-coding(http://code.google.com/p/action-coding/) はいったいどうやっているんだろう。Ruby は読めないからなぁ。