目標
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
参考になりました!!
返信削除