場合によっては、独自のカスタム Layout クラスを 記述する必要があります。 カスタム・レイアウトは、アプリケーションのさまざまな状況で使用される 複雑なレイアウトを持つ場合に最適です。 また、アプリケーション固有の情報を使用してレイアウトを最適化するときに役立つ場合があります。 カスタム・レイアウトを作成する前に、次の点を検討してください。
複数の Composite ウィジェットで使用される きわめて汎用的なレイアウトを記述する場合を除き、サイズ変更リスナーの子のサイズおよび位置を計算する方が、通常はより単純で簡単です。SWT カスタム・ウィジェットの多くは、この方法で記述されています。 新しいウィジェットは Composite/Layout のペアとしてインプリメントできますが、 サイズ変更リスナー内でレイアウトを実行して、computeSize(...) の推奨サイズを 計算する Composite として インプリメントする方がより明確で、余分なクラスを記述する必要がありません。
それでもカスタム・レイアウト・クラスが必要な場合は、 サイズ変更リスナーにレイアウト・アルゴリズムを最初にインプリメントすることをお勧めします。 これにより、アルゴリズム自体のデバッグが単純になります。 レイアウトに関するさまざまなケース (サイズの縮小、サイズの拡大、ラッピング、またはクリッピング) のテストを行ってください。 アルゴリズムが機能することを確認した後、Layout の サブクラスにコードを再度組み込むことができます。
レイアウトには、次の 2 つのメソッドをインプリメントする役割があります。
カスタム・レイアウトの詳細については、 『SWT のレイアウトの概要』を参照してください。