レイアウトを設定する
今まで配置したウィジェットのままでは、各ウィジェットがウィンドウと連動していないため、ウィンドウがリサイズされてもウィジェットの大きさや配置が変わらず不格好です。
SWTにはレイアウトという概念があり、レイアウト設定を行うことで親ウィジェット(ShellやCompositeなど)がリサイズされた際に、一緒に子ウィジェットが自動的にリサイズ、再配置するようにできます。
VEで扱うことができるレイアウトを、表1に示します。
| レイアウト名 | 概要 |
|---|---|
| null | ウィジェットのレイアウトを行わない。VEのレイアウト初期値 |
| RowLayout | 縦または横にウィジェットを一列に並べるレイアウト。入りきらない場合には行送りにすることもできる |
| GridLayout | 格子状にウィジェットを並べるレイアウト。余剰スペースを塗りつぶして配置することや、複数の格子をまたいでウィジェットを配置するなど、非常に複雑なレイアウトが可能 |
| FillLayout | 各ウィジェットを同じ大きさで均等に配置するレイアウト。ウィジェット間の空白幅なども設定できるが、初期値では、ウィジェットがレイアウト枠を塗りつぶすように配置される |
| FormLayout | 他のウィジェットとの相対位置を設定するレイアウト |
表1:レイアウト一覧
PhotoViewerサンプルアプリケーションの場合には、GridLayoutを使用して写真イメージを表示するCanvasウィジェットと、ファイルパスを表示するTextウィジェットを、ウィンドウサイズに連動してリサイズできるようにレイアウトを設定します。
sShellを選択し、プロパティービューのlayoutプロパティーにGridLayoutを指定します。GridLayoutを設定すると、図1のように格子状(この段階では1列しかありませんが)にウィジェットが配置されます。

図1:レイアウト設定
次に、グリッドセルの列数を2列にし、txtFilePathとbtnOpenを横並びにレイアウトします。格子の列数などのレイアウトの詳細設定を変更するためには、カスタマイズ・レイアウト・ダイアログを使います。
Java BeanビューからsShellを右クリックし、メニューの「レイアウトのカスタマイズ...」を選択すると、図2のカスタマイズ・レイアウト・ダイアログが表示されるので、グリッド列の列数を「2」に変更します(図3)。

図2:カスタマイズ・レイアウト・ダイアログ

図3:列数を2に変更したGridLayout