2014-08-08

SWT による GUI プログラミング

SWT, Standard Widget Toolkit は、Java プラットフォーム用ウィジェット・ツールキットの一種で、各種プラットフォームのネイティブウィジェットにアクセスできる共通な API を提供することを目的とするライブラリです。すなわち SWT はプラットフォーム固有の GUI ライブラリへのラッパーであるため、複数のプラットフォーム対応としてアプリケーションを配布する際には、プラットフォーム毎の SWT(JARファイル)が必要になります。また、SWT は AWT と同様に、手動でオブジェクトの解放をする必要があります。

Java の GUI ライブラリについては、JavaFX 2 に注目しているものの、SWT のウィジェットである Nebula / NatTable をどうしても使ってみたくなり、まずは SWT ライブラリをある程度使えるようにするべく情報収集を始めました。

Eclipse のインストール

CentOS 7 を使うようになって、開発環境はとりあえず NetBeans IDE を使おうとインストールしたばかりなのですが、SWT を習得するには、SWT を利用している Eclipse を使った方が、なにかと情報も得やすいだろうと考え、結局 Eclipse もダウンロードして使えるようにしました (Eclipse 4.4)。と言っても、ダウンロードした圧縮ファイルを展開しただけです。

$ tar xvf ダウンロード/eclipse-standard-luna-R-linux-gtk-x86_64.tar.gz
eclipse/
eclipse/.eclipseproduct
eclipse/about_files/
eclipse/about_files/mpl-v20.txt
eclipse/about_files/IJG_README
(以下、省略)
...

したがって、Eclipse のメッセージは日本語では表示されません。

自分が使っている CentOS 7 は「開発およびクリエイティブワークステーション」としてインストールされていますので、java-1.7.0-openjdk および関連パッケージがインストールされているため、何か追加でインストールすることなく Eclipse を起動できました。

ちなみに、私は、表示アイコンとして eclipse.png と、以下のようなファイルを $HOME/デスクトップ 内に用意して、デスクトップにアイコンを表示しています。

List: Eclipse.desktop
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Name=Eclipse
Comment=
Exec=/home/bitwalk/eclipse/eclipse
Icon=/home/bitwalk/share/icons/eclipse.png
Path=
Terminal=false
StartupNotify=false

自分が使っている CentOS 7 では、デスクトップ環境に「GNOME クラシック」を使っています。PC が古く、今どきのデスクトップ環境を存分に利用するにはやや非力なので、もっと軽量なデスクトップを使いたいとは思うものの、頻繁に利用するアプリケーションのアイコンをデスクトップ上に表示できさえすれば、これでも結構満足できてしまいます。

SWT ライブラリのダウンロード

SWT は前述したように、プラットフォームに依存した GUI ライブラリであるため、SWT を利用したアプリケーションを開発するには、まず、開発環境が動作するプラットフォーム用の SWT ライブラリをダウンロードしておく必要があります。下記のサイトからプラットフォームにあった SWT のライブラリをダウンロードします。

私の環境では、Linux (x86_64/GTK+)の swt-4.4-gtk-linux-x86_64.zip をダウンロードします。

次に、Eclipse を起動して、メニューから FileImport... を選択して、ダウンロードした SWT ライブラリを、プロジェクトとしてワークスペースにインポートします。

以上で SWT ライブラリを Eclipse で利用するための準備は終わりです。プロジェクトの生成時に、今回インポートした org.eclipse.swt へパスを通せば、SWT ライブラリが利用できます。

動作確認

SWT ライブラリが利用できることを確認するために、古い記事ですが、下記のサイトで紹介されているサンプルを試してみました。

Java のプロジェクトを生成する際に、先程インポートした org.eclipse.swt へパスを通しておきます。

上記記事で紹介されていたサンプルをコピーしてクラス名を調整します。

コンパイルして実行したサンプルに、適当な CSV ファイルを読み込ませてみた例です。

SWT ライブラリを利用したアプリケーションの動作が確認できましたので、しばらくは、(今更ではありますが)基本的なウィジェットのサンプルを備忘録がわりに紹介していきたいと思います。とりあえずサンプルの解説は後回しにして、サンプルコードと実行例だけ掲載していきます。

下記は Windows の例ですが、丁寧に説明されています。

0 件のコメント: