こんどは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で見てみたけどちゃんと定義はされてた。なんでだろう?