こんどはcontrolP5
先の_whyさんのshoesがやっぱりいろいろと大変なので結局jruby+p5にもどってくることに。この前カメラ動画の取り込みやらマイク入力音声の波形表示に成功しているのでおそらくいけるだろうと期待して。ちなみにいろんなとこで使われてるControlP5というp5ライブラリを使います。こんなかんじで。
require 'java' include_class "processing.core.PApplet" include_class "controlP5.ControlP5" class Sketch < PApplet def setup @val = 1 @bg = color(128,128,128) size(360,240) @ctrl = ControlP5.new(self) button = @ctrl.add_button("push",10,0,0,80,20) sl = @ctrl.add_slider("sliderValue",0,255,40,40,100,10) end def draw background(@bg) end def button(val) puts val end def slider(v) @bg = v puts v end end JFrame = javax.swing.JFrame def run applet applet.init frame = JFrame.new applet.class.to_s frame.content_pane.add applet frame.default_close_operation = JFrame::EXIT_ON_CLOSE frame.pack frame.visible = true end if $0 == __FILE__ app = Sketch.new run app end
無事にレンダリング成功! しかしながらbuttonを定義してそのクリックイベントのコールバックを受け取るbuttonメソッド、sliderメソッドが動かなかった。class.methodsで見てみたけどちゃんと定義はされてた。なんでだろう?