カスタム・ウィジェット

独自のカスタム・ウィジェットを実装することにより、SWT を拡張することができます。SWT 自体は、 パッケージ org.eclipse.swt.custom を 提供します。これには、SWT コントロールのコア・セットには含まれない、 プラットフォーム・ワークベンチを実装するために必要となるカスタム・コントロールが含まれます。

コントロール
目的
CBanner CBanner は、ツールバー・エリアおよびパースペクティブ切り替えツールバーをレイアウトする場合に、ワークベンチで使用します。
CCombo Combo に似ていますが、テーブル・セル内に収まるように、垂直方向にサイズを変更できます。
CLabel ラベルに似ていますが、省略符号付きのテキストの短縮形をサポートします。 アクティブなワークベンチ・ビューで見られるような背景色のこう配効果もサポートします。ラッピングはサポートしません。
CTabFolder タブ・フォルダーと似ていますが、タブ (上部または下部) および枠の視覚的な外観の追加構成をサポートします。
CTabItem CTabFolder でページのタブに対応する選択可能なユーザー・インターフェース・オブジェクト。
SashForm 行または列の配置に子をレイアウトし、ユーザーが子のサイズを変更できるように、 サッシを使用してそれらを分離させるコンポジット・コントロール。
ScrolledComposite コンテンツをスクロールし、 オプションで、使用可能なスペースを埋めるためにコンテンツを引き伸ばすコンポジット・コントロール。
StyledText ユーザーがテキストを入力できる編集可能なコントロール。コントロール内のテキスト範囲には、 異なる色およびフォント・スタイルを使用できます。
ViewForm ViewForm はワークベンチで、ビューのラベル/ツールバー/メニューのローカル・バーの位置およびサイズを決定するために使用します。

カスタム・ウィジェットの実装

カスタム・ウィジェットが必要であると判断し、どのプラットフォームをサポートするかを決定した後、 ウィジェットのいくつかの実装技法について考慮します。 基礎となる OS プラットフォームで何が利用可能かに応じて、これらの技法を組み合わせることができます。

固有の実装

SWT により提供されない固有のウィジェットがアプリケーションで必要になる場合は、 それを固有に実装する必要があります。これは、 プラットフォーム共用ライブラリー内のプラットフォーム・ウィジェット、サード・パーティー・ウィジェット、 またはその他のウィジェットである場合があります。固有のカスタム・ウィジェットの実装の完全な例については、 『 SWT を使用したユーザー独自のウィジェットの作成』を参照してください。

既存ウィジェットの結合

ウィジェットを結合して、より高度なウィジェットを作成できます。例えば、ボタンおよびドロップダウン・リストとテキスト・エントリー・ウィジェットを併用して、Combo を実装することができます。 結合されたウィジェットを実装するには、Composite のサブクラスを作成し、子を内部で管理します。

簡単な例については、CCombo を参照してください。

カスタム・ドロー実装

場合によっては、新規ウィジェットの実装に役立つ、固有コードも既存のウィジェットもないことがあります。 この場合、Paint イベントのハンドラー内で自分でウィジェットをドローしなければなりません。 この技法は、極めて複雑になる可能性がありますが、 完全に移植可能な実装を作り出すという利点があります。

カスタム・ドロー・コントロールは、 Canvas または Composite を サブクラス化することによって実装されます。ウィジェットに子コントロールが含まれない場合は、 Canvas をサブクラス化します。

カスタム・ドロー・ウィジェットの内部実装には、通常、 以下の主要なタスクが必要です。

org.eclipse.swt.custom で 実装された多くのウィジェットは、このアプローチを使用します。 簡単な例については、C ラベル を参照してください。

カスタム・ウィジェットの詳細については、 『 SWT を使用したユーザー独自のウィジェットの作成』を参照してください。