【コラム】
Javaは標準でSwingというGUIアプリケーションのためのAPIが提供されている。しかし、Javaの標準的な統合開発環境であるEclipseにはSwing向けのGUIデザイナが搭載されておらず、サードパーティ製のプラグイン(本連載第15回を参照)にもこれまではオープンソースのものは存在しなかった。これに対し、Eclipseと並ぶオープンソースのJava IDEであるNetBeansにはMatisseと呼ばれる強力なGUIデザイナが搭載されており、Swingアプリケーションの開発はEclipseの大きな弱点の1つとなっていた。
今回紹介するVisual Swing for EclipseはSwing向けのGUIデザイナを提供するオープンソースのEclipseプラグインだ。
VisualSwing for EclipseのWebサイトには更新サイトが用意されているが、筆者の試したところでは更新サイトからインストールを行うことは(Eclipse 3.4/3.5ともに)できなかった。ダウンロードページからZIPファイルをダウンロードできるのでこちらを利用した。
解凍したファイルをEclipseのdropinsフォルダに配置することで動作する。以下のようなフォルダ構造にしておくとプラグインごとにファイルを整理でき、便利だ。
Eclipseの新規ウィザードから「Visual Swing Class」カテゴリ配下のウィザードによってSwingのJFrameやJDialogを継承したクラスを作成することができる。
クラスを作成すると以下のようなGUIデザイナが起動するはずだ。パレットからコンポーネントを選択し、GUIデザイナ上でドラッグ&ドロップすることでGUIのデザインを直感的に行うことができる。コンポーネントをドラッグ&ドロップする際はガイドが表示されるため、位置合わせも簡単だ。
|
|
図3 ドラッグ&ドロップ時にはガイドが表示される |
独自コンポーネントなどパレットに存在しないコンポーネントを使用する場合はパレットの最下段にある「Custom Swing Component」を選択すればよい。任意のクラスを選択してGUIデザイナ上に配置することができる。もちろん独自コンポーネントの場合もGUIデザイナ上ではきちんと描画される。
また、GUIデザイナ上で右クリック→「Preview Design」で実際にウィンドウを立ち上げて表示を確認できる。ウィンドウリサイズ時の動作などを確認する際に利用するといいだろう。
各コンポーネントのプロパティは「プロパティー」ビューで設定することができる。逆にソースコードに編集を加えた場合も自動的にGUIデザイナに反映される。また、「アウトライン」には配置したコンポーネントやコンポーネントに登録されているイベントの階層構造が表示される。
|
|
図4 プロパティービュー |
|
|
図5 アウトラインビュー |
配置したコンポーネントにイベント処理を追加するにはGUIデザイナ上でコンポーネントを選択し、右クリック→「Add/Edit Events」から追加したいイベントを選択する。すると以下のようなイベントハンドラメソッドの雛形が生成されるので、メソッド内にボタンがクリックされたとき等の処理を記述しよう。
private void jButton0ActionActionPerformed(ActionEvent event) {
// ここにイベント発生時の処理を記述
}
Visual Swing for Eclipseの利用感はNetBeansのMatisseに近い。つまり、非常に使いやすいということだ。また、動作もそれなりに軽快で安定しており、生成されるソースコードも素直だ。なによりオープンソースかつ実用的なEclipse用のGUIデザイナという点では唯一の存在といってもいい。現在のところEclipseでSwing開発を行うためのプラグインとしては決定版といっても過言ではないだろう。
Eclipse上でSwingアプリケーションの開発を考えている方、SwingアプリケーションのためにNetBeansを使っている方は一度Visual Swing for Eclipseを試してみてほしい。
| FSL、全通信方式対応のマルチモード/マルチバンドRFトランシーバLSIを発売 [14:21 2/23] |
| ISSCC 2012 - ソニー、転送速度350Mbpsを実現したTransferJet対応LSIを発表 [13:54 2/23] |
| ISSCC 2012 - パナソニック、443MB/sの書き込み速度を実現したReRAMを開発 [13:35 2/23] |
| ISSCC 2012 - IMECとルネサス、次世代広帯域無線用受信機向けADCを開発 [13:01 2/23] |
| 富士通と東北大、高精度3次元津波シミュレーションの共同研究を開始 [11:19 2/23] |
|
イメージナビ、プロの広告写真家による高品質な撮影代行サービスを開始 [14:43 2/23] クリエイティブ |
|
AppleやGoogleなどアプリストア6社、プライバシーポリシー明示に合意 [14:34 2/23] ネット |
|
【2月23日】今朝のエンタメニュース放映時間ランキングTOP10 [14:32 2/23] エンタメ |
|
FSL、全通信方式対応のマルチモード/マルチバンドRFトランシーバLSIを発売 [14:21 2/23] エンタープライズ |
|
シグマ、4,600万画素センサー搭載「SD1 Merrill」の発売日を正式決定 [14:21 2/23] 家電 |