EclipseでGUIアプリケーションを開発するには
Eclipseは、ことGUIアプリケーション開発に関してはライバル関係にあるNetBeansに大きく遅れを取っている。NetBeansは非常に使いやすいSwing用のGUIビルダを標準装備しているが、EclipseではGUIアプリケーションの開発を行うには、別途、Visual Editorというプラグインをインストールする必要があり、しかもVisual Editorは動作が非常に遅く、不安定で、お世辞にも使いやすいとは言い難い。しかもいまのところ最新のEclipse 3.3に対応したVisual Editorは正式にはリリースされていない(つまりEclipse 3.3ではいまのところVisual Editorを利用することができない)のだ。
しかし、EclipseにはVisual Editor以外にもいくつかのGUIアプリケーション開発用のプラグインが存在する。これらはいずれもVisual Editorよりも軽量に動作し、高機能で、なおかつ安定している。今回はEclipseでGUIアプリケーションを開発するためのプラグインとして、Jigloo GUI BuilderとWindowBuilderを紹介したい。
Jigloo GUI Builder
Jigloo GUI BuilderはCloud Gardenが開発しているGUIビルダで、AWT/Swing、SWTをサポートしている。オープンソースではないが、非商用目的の利用であれば無償で利用可能だ(商用利用の場合はライセンスの購入が必要となる)。
Swing標準のレイアウトマネージャだけでなく、JGoodiesのFormLayoutやJavaSE 6で導入されたGroupLayoutにも対応している。エディタ上部にコンポーネントパレットが用意されており、ここからドラッグ&ドロップでコンポーネントの配置を行うことが可能だ。操作面で特に難しい部分はないため、直感的に利用することができるはずだ。
さらにJSR-296として標準化が進められているSwing Application Frameworkにも対応している。Swing Application Frameworkはその名の通り、Swingアプリケーション用の軽量フレームワークで、アプリケーションのライフサイクルやリソースの管理、アクションとコンポーネントのバインディングといった機能を提供するものだ。Swing Application FrameworkはJavaSE 7で標準搭載される見込みとなっているため、Jigloo GUI Builderで一足先に触れておくのも悪くないだろう。
WindowBuilder
WindowBuilderはInstantiationsが開発しているGUIビルダだ。AWT/Swing、SWTはもちろんのこと、JFaceやEclipse Formsもサポートしており、Eclipseプラグイン開発にも活用することができる。また、GWT(Google Web Toolkit: Googleがオープンソースで開発しているAjaxフレームワーク)にも対応している点が特徴だ。
商用製品だが、機能に制限のあるフリーエディションも用意されている。しかし、フリーエディションの機能制限は非常きつく、実際にアプリケーションの開発に用いるのであればライセンスの購入は必須だ。14日間、すべての機能を試すことのできる評価用ライセンスを無料で取得することができるので、まずは評価用ライセンスで試用してみるとよいだろう。
WindowBuilderは、画面のデザインやプロパティを編集するためのビューなどがすべて単一のエディタ内に表示されているため、エディタを最大化すると操作しやすい。
SWT/JFace Data Bindingがサポートされている点にも注目だ。SWT/JFace Data Bindingとは、SWT/JFaceのコントロールとJavaBeanをバインドするためのフレームワークで、SWT/JFaceの画面作成時にデザイナに配置されたコンポーネントを右クリックし、コンテキストメニューから「Data Binding」を選択することでバインドの設定を行うことができる。
図3 データバインディング |
図4 テキストフィールのtextプロパティをJavaBeanにバインド |
まとめ
近年のJava SEの歩みやJava FXの登場を見てもわかるように、最近のJava陣営は、これまでのサーバサイドだけでなくクライアントサイドにも力を入れてきている。今まであまり重要視されてこなかったJavaによるGUIアプリケーション開発の需要も高まってくるのではないだろうか。
本稿でも解説したとおり、GUIアプリケーション開発についてはEclipse Foundation謹製のVisual Editorよりもサードパーティ製のプラグインのほうが明らかに使いやすい。NetBeansのGUIビルダは使いやすいと評判だが、Jigloo GUI BuilderもWindowBuilderもGroupLayoutをサポートしており、NetBeansのGUIビルダと同等のレイアウト機能を備えているのだ。
しかし、これらのプラグインにも「オープンソースではない」という大きな欠点が存在する。Visual Editorであれば商業目的の利用でもライセンスフィーが発生しないし、独自に拡張して利用するといったこともできる。筆者としてはVisual Editorの今後の進歩に期待したいところではあるが、現状ではJigloo GUI BuilderやWindowBuilderといったサードバーティ製のプラグインを利用したほうがよいのかもしれない。