目標
JRubyを使ってJavaのGUIツールキットであるSwingを用いる.
これによってRubyでGUIプログラムを作成する.
動作環境
私が動作させた環境を以下に示します.
どれが関係あり,どれが関係ないかはよくわかってません.
Mac OS X 10.7.4(Lion)
Ruby 1.9.3
Jruby 1.6.8
java version 1.6.0_35
そもそもJRubyとは
JavaVM上でRubyを動かすソフトウェアである.JavaからRubyを呼び出すこともできるらしい.
JRubyの長所
JRubyには以下の長所がある(らしい)
Javaの豊富なライブラリが使える.
Java並みの速度でRubyで書いたプログラムが動く
今回は1つめ長所の恩恵にあずかることになりそうです.
JRubyをインストール
RVMを用いてインストールします.
以下のコマンドでインストールできます.
rvm install jruby-1.6.8
JRubyの使い方
ex.rb というRubyのプログラムをJRubyで動かすには以下のようにする.jruby-1.6.8 ex.rb
swingを使ってみる
参考ページそのままのサンプルコードを動作させてみる.
上の方のimport文でswing関連のものをインポートしている.
require 'java'
import 'javax.swing.JFrame'
import 'javax.swing.JButton'
import 'javax.swing.JTextField'
import 'javax.swing.JPanel'
import 'java.awt.BorderLayout'
class ButtonAction
include java.awt.event.ActionListener
def initialize(text)
@text = text
end
def actionPerformed(evt)
@text.setText("Click")
end
end
frame = JFrame.new("HOGE")
button = JButton.new("Click!!!")
text = JTextField.new(10)
button.add_action_listener(ButtonAction.new(text))
panel = JPanel.new
panel.add text
panel.add button
frame.getContentPane.add(panel, BorderLayout::CENTER)
frame.setDefaultCloseOperation(JFrame::EXIT_ON_CLOSE)
frame.pack
frame.visible = true
おわりに
とりあえず,動作することまでは確認.
これでRubyでGUIプログラムをつくることができそう.
他にもRubyでGUIプログラムをつくる方法があるのかもしれないけど,僕はまだ知らない.
--
My Emacs Files At GitHub
参考になりました!!
返信削除