テーブルとツリーに対してイメージを表示させるには、イメージを描画するリスナを生成して追加する必要があります。
次にテーブルのセルにインフォメーションアイコンを表示するサンプルコードを示します。
// イメージ描画リスナ
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:テーブルのセルにアイコンイメージを表示
|