未分類

jRubyとSwingでWindowsのGUIアプリをつくる~Hello World

投稿日:

SwingはJavaのGUIツールキット。

JavaのGUIツールキットには簡素なSWTとかAWTとか、最新のJavaFX2.0とかあるけど、SwingはSWTやAWTより比較的リッチなインターフェイスでJavaFX2.0より情報が割りと豊富にある

Javaなので、基本的にはWIndowsでもMacでもLinuxでも実行可能で環境に応じたリッチなコンポーネントが提供されるらしい

環境

Windows7にcygwinとjrubyをインストールする

Swingについては主にここの情報を参考にした

Swingを使ってみよう

JFrameを使ってみる

フレームの作成と表示

適当なところにmain.rbファイルをつくって

深く考えずにcygwinから実行してみる

左上に最小のフレームができたはず

2013-03-25_00h51_59

閉じるボタンで終了するようにしてみる

アプリケーション終了をクローズ処理として設定

このままだと閉じるボタンでウインドウは消えるけど、ターミナルではアプリを実行したままでctrl+Cを押して終了するしかない

こんな感じで1行くわえれば閉じるボタンでアプリも終了する

jRubyでJavaのライブラリをRubyっぽく使う

jRubyにはJavaのライブラリもRubyっぽく使う機能がついている

リンク先のサンプルと比較するとわかるのだけれど

はこういう風にも書ける

また、

はこんな感じで

 

タイトルやサイズ・位置を指定してみる

フレームのサイズと表示位置

まずタイトルやサイズを指定するのはこう

setSizeをRubyぽくするのがわからなかった

2013-03-25_01h07_58

位置指定

位置指定はsetSizeのかわりにsetBoundsをつかう

これは(100,100)の座標に(300, 300)のフレームをセット

 画面の真ん中に表示するにはこう

フレームをWindows中央に表示

 

クラス化

JFrameクラスを継承したクラスを定義する

クラス化のポイントは superself が必要なこと

もともとJFrameのコンストラクタはタイトルをStringで引数にできる

 

コンポーネントの追加

フレームに含まれるペインとコンポーネントの追加

フレームはペインと呼ばれるレイヤー構造をもっていて、ここにラベル、ボタン、テキストフィールドなどのコンポーネント(部品)を加えていく

paneは次のように取得してaddメソッドで追加できる

配置条件を表現するオブジェクトは次のようにBorderLayoutをつかう

BorderLayoutの種類はつぎのとおり

こんな風に省略したときはCENTERを意味する

実はgetContentPaneは省略していきなりaddメソッドを使えたりする

まとめると

 

2013-03-25_01h56_21

add(button, BorderLayout::NORTH) ならばこう

2013-03-25_01h58_27

イベントを設定する

イベントモデル

ボタンをクリックしたらなにか処理するようにするにはボタンにアクションイベントを設定すればよい

ボタンを押したらダイアログボックスに”Hello World”と表示させる

全部まとめるとこんな感じ

2013-03-25_02h10_21

 

Swing コードをデバッグし、テストする

-未分類
-

執筆者:

関連記事

jRubyでExcelファイルをつくる〜Apache POI

前提 jRubyでexeファイル作成~rawr 目次1 ライブラリファイル2 サンプル3 コンパイル4  実行 ライブラリファイル rawrの環境では、build_configulation.rbに設 …

JavaでExcelにHello World〜Apache POI

環境 Mac OSX Lion java version “1.6.0_33” Java(TM) SE Runtime Environment (build 1.6.0_33- …

Bashでよく使う/使いたいキーバインド

  ctrl + c 実行中のコマンドを中断 長いコマンドを打っていて何も実行せず次の行を出したいときとかにも使う ctrl + r 過去に使ったコマンドをインクリメンタルにサーチ ctrl …

オンライン会議システムを試す〜BigBlueButton

Red5を使ったオンライン会議やEラーニングを可能にするBigBlueButtonを使ってみた。インストールとデモまで。

Windows7にcygwinとjrubyをインストールする

cygwinはwindowsで使えるlinux類似のコマンド群 jRubyはJava実行環境上で動くRuby jRubyを使えば、Railsとかの多くのRuby Gemsも使えるし、Javaの豊富なラ …