
第2回 EclipseのVEでSWTアプリを作る(前編)
米持幸寿
2005/11/17
米持先進技術工房 @IT分室では、テクノロジー・エバンジェリスト 米持幸寿氏が、J2EEの最新技術情報を提供します。最新技術の中身をいち早くキャッチアップしたい読者のためのコーナーです。
EclipseのVisual Editor(以下VE)は、Javaのユーザーインターフェイス用のパネルを編集するためのWYSIWYGエディタです。もともとはIBM WebSphere Studioの一機能でしたが、現在はeclipse.orgにてオープンソース化されています。
Visual Editor は、Eclipse SDK(Software Development Kit)に追加するJava開発用のツールです。AWT、Swing、SWTの3種類のUIツールキットに対応しています。
今回から2回に分けて、VEを使ってSWTアプリ(パネル)を作成する手順を紹介しましょう。
|
SWTとは何か |
SWTは、Eclipseの最もコアとなるウィンドウ・ツールキットです。ウィンドウ・ツールキットとは、ウィンドウ・システムにおける基本的なUI部品のセットです。
ウィンドウ・システムは通常、単純にウィンドウを管理・表示するだけの機能を提供します。ただし、それだけだとウィンドウは「後ろに隠れているウィンドウをクリックしたら前に出る」というような基本動作をしてくれません。ウィンドウ・アプリケーションは、そういった処理をマウスイベント処理などを適切に行うことで個別に行わなければなりませんし、すべてのウィンドウの描画は、描画用のグラフィックAPIで行わなければなりません。
そこで、ウィンドウ・システムにはすべてのウィンドウに共通の機能をアドオンして追加しています。例えば、ウィンドウの枠をドラッグして大きさを変えられたり、タイトルバーをドラッグして移動したり、といった機能です。このような機能を提供するウィンドウ・システムの要素を「ウィンドウ・マネージャ」といいます。Windowsの場合はWindows自身がウィンドウ・マネージャーの働きをします。OS/2の場合はPM(プレゼンテーション・マネージャー)です。Linuxの場合は非常に多くのウィンドウ・マネージャーがあり、提供しているディストリビューターによって違いますが、Motifというのが有名であり、今日ではGNOMEが多いでしょうか。
さらに、ウィンドウ・システム全体で共通に使える、一般的な動作をするウィンドウの種類(ウィンドウクラスといいます)をあらかじめ用意して、再利用できるようにしています。このウィンドウクラスのセットを、一般的に「ウィンドウ・ツールキット」といいます。一般的に、フレームウィンドウ、ダイアログボックス、テキストフィールド類、ボタン類、リストやテーブル、ツリー表示などの部品が用意されています。
これらのウィンドウは、ユーザー・インターフェイス(UI)をつかさどるソフトウェア部品と考えられることから、UIコンポーネントと呼びます。
Win32やOS/2のPM-APIなどのようなネイティブのAPIには、あらかじめウィンドウ・ツールキットが提供されています。Linuxなどに採用されているX
Windowなどでは、X11R6ライブラリや、Motifウィジェットといったツールキットがあります。
Javaには次の2つのウィンドウ・ツールキットがあらかじめ用意されています。
![]() |
| 図1 AWTの部品 Javaでは、コアのライブラリに Abstract Window Toolkit(以下AWT)が用意されています。java.awtライブラリに含まれています。 AWTは、非常にシンプルなAPIで、使うのは簡単ですが、機能が低く、描画などの性能も低く、見た目も良くないなど、あまり高度なウィンドウ・システムには向きません |
![]() |
| 図2 Swingの部品 Java2からSwingライブラリというツールキットが追加されました。ライブラリはjavax.swingです。Swingでは、AWTにはなかったラジオボタン、パスワードフィールド、スライダー、コンボボックス、ツリー、テーブル、プログレスバーといった部品を加えることで、高度なウィンドウ・アプリケーションが作れるようになりました |
Javaのウィンドウ・ツールキットとして標準で提供されているAWTとSwingですが、共通の欠点があります。それは、どちらのウィンドウ・ツールキットもPureJava(すべてのウィンドウ処理をJavaで行う)という設計のため重く、描画をすべてJava上で行うので、見た目が良くない、ということです。
|
|
SWTは、EclipseのベースとなるEclipse独自のウィンドウ・ツールキットです。機能は、Windows、X-Windowの共通部分を抜き出したようなものとなっています。このツールキットの特徴は、PureJavaではなく、ネイティブAPIを使うことにあります。例えば、Windows上でSWTを使う場合、Win32に存在するウィンドウ部品はWin32によって動作します。Linuxで動作させる場合、X-Window(実際には、GTKというライブラリ)に存在する部品はGTKによって動作します。SWTに存在し、ネイティブAPIに存在しないウィンドウ部品(例えば、Linux上でのツリー表示)は、PureJavaでエミュレートします。
このような構造をしているため、SWTのウィンドウ部品はネイティブAPIの部品そのものですので、非常に性能が良く、見た目もきれいです。Eclipseの成功には、SWTの存在が欠かせなかったといえるでしょう。
Eclipseが発表されてから、このSWTをJavaのデスクトップアプリケーション(ウィンドウ・システム上で実行されるソフトウェアという意味)に使いたいというニーズが高まり、Eclipseの最低限の実行環境のみを分離したEclipse RCP(リッチ・クライアント・プラットフォーム)ができました。これは、リッチクライアントアプリケーションを作るために利用できるEclipseのランタイムです。
|
Eclipse SDKとVEのインストール |
この記事の執筆時点では、VEのバージョンはv1.1.01が最新ですので、これを使って手順などをご紹介します。以前のものに比べると、かなり使いやすくなっています。v1.1.01はEclipse 3.1を前提とするため、Eclipse 3.1を使います(Eclipseの最新バージョンはEclipse 3.1.1)。
Eclipseのセットアップは、「連載:Eclipse3.1を使おう」を参照してください。
VEの最新のビルドは、EclipseのVEのサイトから入手可能です。
VEを動作させるには、同時にいくつかのプラグインをインストールする必要があります。VEのビルド(バージョン)によって前提となるもののバージョンが違いますので、気を付けてください。
- Java
Runtime Environment 1.4.2以上
各社(IBM、Sun、BEA)から提供されているJREがリストされています。
- Eclipse build
eclipse-SDK-3.1.1
- EMF
Build 2.1.1
- GEF
Build 3.1.1
- VE
Build 1.1.01
EMF(Eclipse Modeling Framework)は、Eclipse上でさまざまなエディターを作るときに、エディター上のモデル情報を共有するための強力なフレームワークです。VEがビジュアルエディターとソースコードエディターとの間で画面の設計情報を共有するために利用しています。
GEF(Graphical Editing Framework)は、Eclipse上でグラフィカルエディターを作るためのフレームワークです。エディター上でドラッグ&ドロップ可能な部品を表示し、線で結合するようなツールを作る手助けをします。
- JVMおよびEclipseのモジュールをダウンロードします
- Javaはそれぞれのインストール手順に従ってインストールしてください
- ダウンロードした各ZIPファイルを適当なディレクトリに展開します
- 展開すると、中にはpluginフォルダとfeaturesフォルダがあります。このそれぞれのフォルダの中身を、Eclipse本体がインストールされた場所の同じ名前のフォルダ下にコピーします
- eclipseフォルダの「eclipse.exe(Windowsの場合)を実行すると、Eclipseのワークベンチが起動します
ところで、VEは、IBM Rational Application Developer(RAD)などの一部のベンダー製品にはあらかじめインストールされています。
今回はここまでです。次回はVEを使ってSWTのパネルを作成します。
| 筆者プロフィール |
米持幸寿(よねもち ゆきひさ)![]() 1987年に日本アイ・ビー・エム入社。メインフレームOS、ミドルウェアの障害対応、障害解析ソフトウェアの開発、ワークフローシステム開発、オブジェクト指向開発、Web開発などを経験。2000年より、ソフトウェアのテクノロジー・エバンジェリストとして活動中。 米持先進技術工房 テクノロジー・エバンジェリストとして活躍する米持氏が主催する、J2EEの最新技術情報を提供するWebサイト。 http://www-6.ibm.com/jp/developerworks/tips/ytech/ |
米持先進技術工房−@IT分室 バックナンバー
| Java Solution全記事一覧 |
ホワイトペーパー(TechTargetジャパン)
- Webの表示速度を遅くする「SSLハンドシェイク」とは (2010/2/9)
安全性を担保しようとWebページにSSLを適用すると、負荷の高い処理が実行される。速度と安全性は両立できるのか? - クラウド活用「雲活」のために押さえるべき39のポイント (2010/2/2)
活用するべきサービスか否か、クラウドの利点・問題点、クラウドプラットフォーム提供企業になるための条件、開発者がするべきことに分けて紹介 - 再利用性の高いクラス作成に重要な“アクセス制御” (2010/1/28)
Javaのアクセス修飾子public、private、protectedや、Eclipseで簡単に作れるアクセサメソッドgetter、setterについて解説 - DB設計の神ツール「ERMaster」なら、ここまでできる (2010/1/21)
直感的なUIに、カスタマイズ可能な、Excel出力のテーブル定義書、辞書機能など多機能なERモデリングの無料Eclipseプラグインです
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |











