Fixed it. The was running just fine. The difficulty arise from the builder method wich doesn't automatically add up the in the block. Instead, I used the clearer java counterpart : a = Vertice.new b = a.x_property b.add_change_listener {|new| puts "x trace : #{new}" } c = timeline(key_frame(1.sec, key_value(b, 100, Java::javafx::animation::Interpolator::EASE_BOTH))) c.play ... which runs just fine. I couldn't get the writing of the constant as a symbol working. The last argument can be ommited.