スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[JRuby]MonkeybarsとRawrでGUI

JRubyでJavaのSwingを利用しようと思い、サンプルを書いてみましたが
自力でjarを作ったりするのは結構手間です。
フレームワーク的なものを探してみたところ、
Monkeybarsというのを見つけたので、チュートリアルに従って試してみました。

[参考]
・Monkeybars
 http://monkeybars.rubyforge.org/
 JRubyのGUI用フレームワーク

 チュートリアル
 http://monkeybars.rubyforge.org/tutorials.html

・Rawr
 http://d.hatena.ne.jp/xibbar/mobile?date=20081220
 JRubyからexeやappを作成するツール


まずは、Monkeybarsを使用してプロジェクトの下地を作ります。

#インストール
jruby -S gem install monkeybars
jruby -S gem install rawr

#プロジェクト作成
monkeybars sample
cd sample

#rawrをプロジェクトへインストール
rawr install

Rawr has found an exisiting Rakefile.
Please select one of these options:
1: Keep the current Rakefile, and add the rawr content to the top.
2: Replace the current Rakefile with a new Rakefile. You will lose everything in the current Rakefile!
3: Quit, leave the current Rakefile alone, and add nothing new.
Your choice (1, 2, or 3):

→1で良いようです。

#ソースファイルをジェネレート
jruby -S rake generate ALL="src/hello"

#Swingレイアウト拡張jarをコピー
cp /Applications/NetBeans/NetBeans\ 6.5.app/Contents/Resources/NetBeans/platform9/modules/ext/swing-layout-1.0.3.jar lib/java/


下地ができたところで、NetBeansにプロジェクトとして取り込みます。
「既存のソースを使用するJavaプロジェクト」として作成します。

1_プロジェクトとして取り込み

先ほど作成したプロジェクトフォルダを指定します。

2_プロジェクトフォルダ指定

ソースパッケージフォルダとして、「src」フォルダを指定して、「完了」ボタンを押します。

3_ソースパッケージフォルダ

「lib/java/」のjarへのクラスパスを設定します。

4_Jar追加(右クリック)

5_Jar追加

次にアプリケーションを作成していきますが、まずGUI部分を作成します。

6_JFrame追加(右クリック)

7_JFrame追加

8_JFrame編集

ソースファイルを編集していきます。

#src/hello/hello_model.rb

class HelloModel
 attr_accessor :message

 def initialize
  @message = "Hello!"
 end

end

#src/hello/hello_view.rb

class HelloView < ApplicationView
 set_java_class 'hello.Hello'

 map :model => :message, :view => "jLabel1.text"
end

#src/hello/hello_controller.rb

class HelloController < ApplicationController
 set_model 'HelloModel'
 set_view 'HelloView'
 set_close_action :exit

 def jButton1_action_performed
  model.message = "OK!"
  update_view
 end

end

#src/main.rb(48行目付近)

begin
 # Your application code goes here
 require 'hello_controller'
 HelloController.instance.open

rescue => e
 show_error_dialog_and_exit(e)
end


実行してみます。
(主クラスを聞かれるので「org.rubyforge.rawr.Main」を指定します。)

9_実行1

10_実行2

最後にRawrを使用して、appを作成します。

#rakeタスクを表示
jruby -S rake -T

#コンパイル
jruby -S rake rawr:jar

#app作成
jruby -S rake rawr:bundle:app


pakage/osxに「ChangeMe.app」が作成されました。


チュートリアルなのでもっと深いところは全然わかっていませんが
とても便利だと思いました。

gemのプラグインを使用したい場合は自力でjarにまとめれば良いのでしょうか。
いろいろ触り甲斐がありそうです。

コメントの投稿

非公開コメント

プロフィール

jou4

Author:jou4
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。