最終更新:2012-10-18 (木) 11:08:13 (4179d)
SWT
Top / SWT
Standard Widget Toolkit
Eclipseというオープンソースプロジェクトから提供されているJava用のGUIツールキット
特徴
- 軽快な動作
- プラットフォーム・ネイティブなルック&フィール
- UIの描画のためにOSのネイティブAPIを呼び出しているため、プラットフォーム・ネイティブなアプリケーションと同様のルック&フィールを実現することができます。
- Pure Java?ではない
- JNIを使用しているため、Pure Java?ではありません。そのため、プラットフォームごとにSWT用の共有ライブラリが必要となります。とはいうものの、現状Windows、Linux、Solaris、QNX、AIX、HP-UX?、Mac OS X、Windows CEといった幅広いOSにSWTはポーティングされています。さらに、SWTのライセンスは再配布を可能にしていることを考慮すると、Pure Javaではないといっても大きな問題にはならないでしょう。さらに、プログラミング上の注意点としては、各ウィジェットが持つdisposeメソッドが挙げられます。SWTのウィジェットはPure Javaではないため、一般的なJavaオブジェクトのように、確保したリソースがGCによって開放されません。ウィジェットを破棄するときにはdisposeメソッドを明示的に呼び出す必要があります。
- アプリケーション・コードはプラットフォーム非依存
- アプリケーションは、ShellやButtonなどのSWTのクラスを使用して開発されます。ShellやButtonは、ネイティブAPIを持つクラス「OS」や「Callback」「COM」を通じて共有ライブラリを呼び出し、OSに対し描画を依頼します。アプリケーションからのネイティブAPIの呼び出しは全てJava VM、SWTによって隠蔽されます。 そのため、SWTを使用して開発されたアプリケーションは、プラットフォーム非依存となります。 ソースファイルだけではなく、従来通りクラスファイルも移植性があります。また、基本的なウィジェットはプラットフォーム非依存ですが、SWTでは プラットフォーム固有の技術も利用することが可能です。 例えばWindowsでは、IEをActiveXのコンポーネントとして画面に貼り付ける、 というような処理もSWTにより行うことができます。
- Eclipseのプラグイン?開発に必要
- Eclipseと同じ柔軟なライセンス
- SWTはEclipseと同じCPL?(Common Public License)で配布されています。そのためSWTを使用したアプリケーションのソースコードを公開する義務は無く、ライセンス上の制限(商用利用不可など)もありません。
関連
- JFace?