JRubyでSwingしてみる

最近JRubyをよく使っています。(仕事でも)
何かと複数ファイルの文字列操作とかデータ操作とかの単純作業でRubyを使うんですが、
JRubyってJavaで動くからWindowsでも使えるので気に入っています。
プラスしてJRubyJavaのクラスが簡単に呼べるのでJavaRuby風に書けるところがいいですね。
そんなわけでJRubyでswingを使ってみます。

単純なラベル表示をしてみました。Javaと対して変わらないので入りやすいです。

require 'java'

label = Java::javax.swing.JLabel.new
label.setText("sample message.")

frame = javax.swing.JFrame.new("sample window")
frame.setDefaultCloseOperation(Java::javax.swing.JFrame::EXIT_ON_CLOSE)
frame.add(label)
frame.pack
frame.setVisible(true)

うまく表示できました。

今度は、ruby記述風に仕上げてみました。

require 'java'

JLabel = javax.swing.JLabel
JFrame = javax.swing.JFrame

label = JLabel.new
label.text = "sample message."

frame = JFrame.new "window"
frame.default_close_operation = JFrame::EXIT_ON_CLOSE
frame.add label
frame.pack
frame.visible = true

JRubyなかなか興味深いです。
仕事で小技に使いこなせると、なかなか便利そうです。
あとGUIなので、同僚に対してちょっと優越感にひたれるかもしれません。
こういうのってモチベーションを保つために大事だと思ってたりします。