JRubyFXでボタンを押してラベルに表示するのを試してみた

jrubyfxのsampleをいろいろあさって、ボタンを押したらラベル表示を更新する簡単な実装を試してみました。

実装イメージはこんな感じ。

  • hello2.rb
require 'jrubyfx'

class Hello < JRubyFX::Application
  def start(stage)
    with(stage, title: "sample", width: 200, height: 100) do
      layout_scene do
        vbox do
          label("hello", id: 'view')
          button("push") do
            set_on_action do
              stage["#view"].text = "pushed!!!"
            end
          end
        end
      end
      show
    end
  end
end

Hello.launch


「ボタンを押した」というアクションはset_on_actionで取得。
動作はそのブロック内に記述します。
ハッシュが使えるので、labelにidを振っておいて、ハッシュでラベルのテキストを更新します。

実行してみる

 % jruby hello2.rb

swingよりもいい感じに書けます。とくにハッシュが使えるところが。
swingの知識がちょっとあればとりあえずなんとなく作れちゃいますね。
だんだん惚れてきました。