場合によっては、独自のカスタム Layout クラスを記述する必要があります。カスタム・レイアウトは、アプリケーションのさまざまな状況で使用される複雑なレイアウトを持つ場合に最適です。複数の Composite ウィジェットで使用されるきわめて汎用的なレイアウトを作成する場合を除き、サイズ変更リスナーの子のサイズを計算して配置する方が、多くの場合、より単純で簡単です。
レイアウトには、次の 2 つのメソッドを実装する役割があります。
3 番目のメソッド flushCache(...) をオプションで実装して、特定のコントロールに関連付けられたキャッシュ・データをクリアすることもできます。通常、ウィジェットの computeSize() メソッドはコストが高いため、レイアウトは結果をキャッシュして、パフォーマンスを向上させることができます。
カスタム・レイアウトの詳細については、『SWT のレイアウトの概要』を参照してください。