
第9回 SWTのレイアウトはRowLayoutで右へ倣え!
米持幸寿
2007/1/11
米持先進技術工房 @IT分室では、テクノロジー・エバンジェリスト 米持幸寿氏が、J2EEの最新技術情報を提供します。最新技術の中身をいち早くキャッチアップしたい読者のためのコーナーです。
前々回よりSWTで使用できるレイアウトの種類について紹介していますが、今回紹介するRowLayoutは、上に載せられた部品を右方向、または下方向へ順番に並べ、改行しながら配置します。
編集部注:[SWTで使用できるレイアウトの種類]については連載第6回を参照してください。
まずは、部品を順番に配置しよう |
これまでと同様に、以下の手順で、コンポーネントを準備しましょう。
- Javaパースペクティブを開く
- Javaプロジェクトを作成する
- Javaパッケージを作る
- SWTのCompositeを指定して「Visual Class」を追加する
前回と同じように、LayoutプロパティーをRowLayoutに変更してください。
![]() |
| 図1 RowLayoutの設定 |
RowLayoutの特徴は、部品が「ある方向に向かって」並べられる、というものです。前回のFillLayoutと似ていますが、違うのは、部品の大きさが外側(下地)のCompositeを埋めるように広げられる、という考え方をせず、部品が持っている大きさで順次並べられる、という点です。さらに、自動改行などの機能を持っています。
取りあえず、CompositeのLayoutをRowLayoutにし、Label、Text、Buttonを順番に落としてみたのが、図2です。下の段の「OK」と「CANCEL」のボタンは、本来右に配置されるところが、幅が足りないため改行しています。
![]() |
| 図2 部品を並べたところ |
この状態からプロパティーを順次変更してその意味を確認していきましょう。ツールバーの
ボタンを押して、「Customize Layout」ウィンドウを開いてください。
![]() |
| 図3 Customize Layoutウィンドウ |
方向の変更を行う |
「Row Orientation(行の方向)」はデフォルトで「Horizontal(水平方向)」となっています。「Vertical」をクリックすると、部品が縦に順番に並ぶようになります。
![]() |
| 図4 Verticalにセット |
方向をHorizontalに戻して、「Row Options」のフラグをチェックしてみましょう。
1. Fillフラグ
Fillフラグは、部品の高さ(Vertical のときは、幅)を均一にするためのオプションです。並べられている部品の中で最も大きなものに合わせられます。デフォルトではオフになっています。
![]() |
| 図5 Fillフラグの働き |
2. Packフラグ
Packフラグは、上に載っている部品が、自分の都合のよい大きさになるためのフラグです。デフォルトではオンになっています。オフに切り替えると、すべての部品が一番大きなものに合わせられます。
![]() |
| 図6 Packフラグの働き |
実は、FillとPackは同じような働きをするフラグです。(オンとオフが逆ですが)Fillがオフだと部品は自分の大きさを自分で決めます。オンになると最も大きなものにそろえられます。Packがオンだと、部品は自分の大きさを自分で決めますが、オフになると、最も大きなものにそろえられます。
3. Justifyフラグ
Justifyフラグは、部品を均一に中央寄せで配置するフラグです。デフォルトではオフになっています。
![]() |
| 図7 Justifyフラグの働き |
4. Wrapフラグ
Wrapフラグは、改行するかどうかを決めるものです。デフォルトではオンになっています。オフにすると、下地のCompositeの大きさが足りなくても改行しないので、はみ出してしまいます。
![]() |
| 図8 Wrapフラグの働き |
FillLayoutでは幅が足りない場合、部品を無理やり小さくして詰め込みますが、RowLayoutではそういうことは起こりません。部品に必要な大きさは部品自体が計算し(PreferedSizeといいます)、それを下回る大きさにはしないような動作をします。
間隔を調整するには? |
部品と部品の間隔の調整は、「Customize Layout」ツールの「Spacing」の数値で調整します。図9のような設定にしたCompositeでのスペースの取り方を図10で説明しています。
![]() |
| 図9 数値を設定 |
![]() |
| 図10 間隔の調整 |
また、HeightとTop、WidthとLeftは合計値が使われるので、注意してください(現在のRowLayoutでは、どうもRightとBottomの値が働かないように思います)。
| 筆者プロフィール |
米持幸寿(よねもち ゆきひさ)![]() 1987年に日本アイ・ビー・エム入社。メインフレームOS、ミドルウェアの障害対応、障害解析ソフトウェアの開発、ワークフローシステム開発、オブジェクト指向開発、Web開発などを経験。2000年より、ソフトウェアのテクノロジー・エバンジェリストとして活動中。 米持先進技術工房 テクノロジー・エバンジェリストとして活躍する米持氏が主催する、J2EEの最新技術情報を提供するWebサイト。 http://www-6.ibm.com/jp/developerworks/tips/ytech/ |
米持先進技術工房−@IT分室 バックナンバー
| Java Solution全記事一覧 |
TechTargetジャパン
- Scalaのパッケージ、アクセス修飾子、オブジェクト継承 (2012/5/22)
インポート、パッケージオブジェクト、抽象クラス/抽象メソッド、オーバーライド、final、シールドクラスなども - 基幹系システムでCloud SQLは使えるか試してみた (2012/5/17)
サンプルとしてMRPシステムを作成して動かし、「再帰呼び出し」などのパフォーマンスを測定して検証してみます - アジャイル管理ツール9選+Pivotal Tracker入門 (2012/5/14)
群雄割拠のアジャイルプロジェクト管理ツールを9つ紹介し、特に注目を集めているPivotal Trackerの基本的な使い方を解説します - サーバサイドJSやJavaでWebアプリが作れるXPages (2012/5/11)
Notes/Dominoの資産をサーバサイドJavaScriptやJavaで操作し、HTMLやJavaScript、CSSをUIにできる技術を紹介
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -











