第10回 SWTで最も自由にレイアウトできるのは何か?


米持幸寿
2007/2/3


 配置の調整をしなければ!

 さて、すべての部品は張り付きましたが、どうも思ったものと違います。移動や条件設定を変えて、整形し直しましょう。

 まず、「追加」ボタンをドラッグして右端へ移動します。

図9 ボタンの移動
図9 ボタンの移動

 次に、Textを3つのグリッドをまたぐよう(スパン)に調整します。選択した後、右側に表示されている緑色の四角(リサイズハンドル)をドラッグして、3つのグリッドをまたぐように広げます。

図10 スパンの調整
図10 スパンの調整

 中央のListオブジェクトも端までスパンさせます。

図11 Listのスパン
図11 Listのスパン

 さて、TextとListは、外側の(下地の)Compositeの大きさに合わせて、最大まで自動的に広がるようにしたいと思います。それには、GridDataの次のプロパティーが関係します。

プロパティー名 説明
grabExcessHorizontalSpace trueなら、そのカラムを横幅最大限まで広げます
horizontalAlignment FILLなら、コンポーネントをカラム幅最大まで広げます
grabExcessVerticalSpace trueなら、そのカラムを縦最大限まで広げます
verticalAlignment FILLなら、コンポーネントをカラム高さ最大まで広げます

 残念ながら、これらの設定はJVE上で設定できないので、プロパティー・エディターでセットします。以下のようにセットしてください。

プロパティー名 説明
Text grabExcessHorizontalSpace=true
horizontalAlignment=FILL
List grabExcessHorizontalSpace=true
horizontalAlignment=FILL
grabExcessVerticalSpace=true
verticalAlignment=FILL
「上へ」ボタン grabExcessHorizontalSpace=true
horizontalAlignment=END

 以上の設定が終わると、やっと出来上がりです。

図12 Grab Excess 設定が終了した
図12 Grab Excess 設定が終了した

 これらの設定は、「Customize Layout」パネルでも設定できます。

図13 GridDataの設定
図13 GridDataの設定


 大きさは「ヒント」でピントを合わせる

 GridLayoutを使う場合、部品は基本的に自動サイズです。しかし、ある特定の大きさにしたい場合もあります。その場合、コンポーネントの大きさを「Hint」という値でレイアウトに与えます。Hintは幅(width)と高さ(height)の両方が設定できます。

 例えば、「保存」のボタンだけ少し大きくしたいなら、それらのボタンを選択しておいて、プロパティー・エディター上で「widthHint」を70、「heightHint」を30といった具合に設定します。自動レイアウトに戻したければ、Hint値を「-1」にします。

 これらの設定をすべて終えると、図14のようになります。

図14 完成
図14 完成

 以上のように、GridLayoutは、とても柔軟に多くの部品を配置できるレイアウトで、JVEを使って簡単に複雑な配置を設定できます。

 用件に文字を入力してリストへ追加できるようにするには、「追加」ボタンのアクションに次の1文を記述します。

    list.add(text.getText());

 同様に、「上へ」「下へ」「削除」「保存」などに、アクションのプログラムコードを記述すれば、プログラムが完成します。

2/2

 INDEX
第10回 SWTで最も自由にレイアウトできるのは何か?
Page1
グリッドを意識するということ
まずは、横向きへ配置してみると……
  Page2
配置の調整をしなければ!
大きさは「ヒント」でピントを合わせる

筆者プロフィール
米持幸寿(よねもち ゆきひさ)
1987年に日本アイ・ビー・エム入社。メインフレームOS、ミドルウェアの障害対応、障害解析ソフトウェアの開発、ワークフローシステム開発、オブジェクト指向開発、Web開発などを経験。2000年より、ソフトウェアのテクノロジー・エバンジェリストとして活動中。


米持先進技術工房
テクノロジー・エバンジェリストとして活躍する米持氏が主催する、J2EEの最新技術情報を提供するWebサイト。
http://www-6.ibm.com/jp/developerworks/tips/ytech/



ご意見、ご感想はJava Solution 会議室へどうぞ


Java Solution全記事一覧



Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間