TOPシステム開発> はじめに
Eclipse 3.2とCallisto
Eclipse 3.2とCallisto

第5回:リッチなシステムを作りこみやすいように進化
著者:ビーブレイクシステムズ  川崎 博之   2006/10/20
1   2  3  次のページ
はじめに

   こんにちは、ビーブレイクシステムズの川﨑です。前回は、SWTのサンプルプログラム導入手順と一部新機能ついて解説しました。今回も引き続きSWTの新機能を解説していきます。
イメージの貼り付け(ボタン/テーブル/ツリー)

   イメージの貼り付け方法は各ウィジェット(Widget)により異なります。以降では、それぞれの実装方法を解説します。


ボタン

   ボタンにイメージを表示させるのは簡単です。次のメソッドを使用して表示させるイメージを指定するだけです。

org.eclipse.swt.widgets.Button # setImage(Image)

   プラットフォームに標準搭載されているアイコンイメージをボタンに表示させた例を次に示します。

Button button = new Button(shell, SWT.PUSH);
// ボタンに表示するイメージを指定
button.setImage(display.getSystemImage(SWT.ICON_ERROR));

ボタンにアイコンイメージを表示
図1:ボタンにアイコンイメージを表示


テーブル/ツリー

   テーブルとツリーに対してイメージを表示させるには、イメージを描画するリスナを生成して追加する必要があります。

   次にテーブルのセルにインフォメーションアイコンを表示するサンプルコードを示します。

// イメージ描画リスナ
Listener paintListener = new Listener() {
   public void handleEvent(Event event) {
      final Image image = display.getSystemImage(SWT.ICON_INFORMATION);
      switch(event.type) {
         // セルのサイズを調整
         // (このイベント発生時にリサイズ処理をすることと定義されています)
         case SWT.MeasureItem: {
            Rectangle rect = image.getBounds();
            event.width += rect.width;
            event.height = Math.max(event.height, rect.height + 2);
            break;
         }
         // アイコン・イメージを描画
         case SWT.PaintItem: {
            int x = event.x + event.width;
            Rectangle rect = image.getBounds();
            int offset = Math.max(0, (event.height - rect.height) / 2);
            event.gc.drawImage(image, x, event.y + offset);
            break;
         }
      }
   }
};
table.addListener(SWT.MeasureItem, paintListener);
table.addListener(SWT.PaintItem, paintListener);

テーブルのセルにアイコンイメージを表示
図2:テーブルのセルにアイコンイメージを表示

1   2  3  次のページ


ビーブレイクシステムズ  川崎 博之
著者プロフィール
ビーブレイクシステムズ   川崎 博之
芝浦工業大学 工学部卒業。学生時代よりJavaに興味を持ち、Java専業ソフトハウスである黎明期のビーブレイクシステムズに入社し、現在に至る。入社当時はPMから直接厳しい指導を受け、机上の勉強とは違う実際の業務システム開発の難しさに戸惑いを覚えたが現在は主任Java開発者として活躍し、Javaアーキテクトを目指し、日々修行中。

INDEX
第5回:リッチなシステムを作りこみやすいように進化
はじめに
  展開バー
  フィールドアシスト