proce55ing PApplet(4)

Jython と PApplet へのハックで、以下のようなことができるようになった。分かりにくいけど、

  1. emacs から jython を起動。以下、対話環境。
  2. PApplet と JFrame のインスタンスp, f を作成。
  3. f を表示。この時点では何も動きなし。
  4. イベントリスナー fn を定義。これは draw() 相当。
  5. p に fn を登録。登録した瞬間から描画される。
  6. 別のイベントリスナー gn を定義。p に gn を登録。登録した瞬間から描画される。
from processing.core import PApplet,PDrawEventListener
>>> from javax.swing import JFrame
>>> f=JFrame("Test")
f.setSize(200,200)
p=PApplet()

>>> f.contentPane.add(p)
processing.core.PApplet[panel0,0,0,0x0,invalid,layout=java.awt.FlowLayout]
>>> p.init()
>>> def fn(evt):
    	pp=evt.source
	pp.ellipse(pp.random(pp.width), pp.random(pp.height), 10, 10)
... ... ... 
>>> f.visible = 1
>>> p.doDraw
<CompoundCallable with 0 callables>
>>> p.doDraw = fn
>>> def gn(evt):
        pp=evt.source
	pp.fill(pp.random(100))
	pp.ellipse(pp.random(pp.width), pp.random(pp.height), 10, 10)
... ... ... ... 
>>> p.doDraw = gn