目次> 第3章 TOPUPPREVNEXT

第3章 文字列のレイアウト

【目次】
  1. 複数ラベルの貼付け
  2. GridLayout
  3. パネルのネスト
  4. BorderLayout
【テーマ】
ウィンドウに住所、氏名 などの複数の文字列を並べてみましょう。 配置の仕方(レイアウト)のうち、 FlowLayout と GridLayout と BorderLayout について説明します。

3章のまとめ

【まとめ】

3.1節で、プログラムの構造の概要を紹介しました。 感覚的な説明ですので、感じをつかんでください。 より厳密には10章で取り扱います。

レイアウト Layout のうち、 FlowLayout(3.1節)、 GridLayout(3.2節) 、BorderLayout(3.4節) を紹介しました。 Appendix F にレイアウトのまとめがあります。

【なんとなく解らない】

3.3節は応用ですので、解りにくかったらとばして4章にすすみましょう。
3.1節の FlowLayout は、基本ですので指定の仕方を理解しましょう。 複数のモノを表示するために必要な指定です。

枠付のラベルのために、

class MyLabel extends JLabel ...
といったクラス宣言をしていますが、 「 Java の 標準で用意されている JLabel に 青い枠をつけている 」 といった理解で先にすすみましょう。 どうしてもというのであれば、
Appendix G BorderFactory に縁取りの簡単な解説があります。
また、extends については、1.2 のプログラムの補足説明 の ●4行目 に簡単な説明があります。

【GridLayout の普通の使い方】

GridLayout で 縦、横 両方の指定をしても意味がありません。縦方向の行数が指定されれば、 その行数を超えないように、列数が調整されます。行数に ゼロを指定した場合に、 列数の指定が有効になります。

横方向に2個づつ(つまり縦に2列)並べたい場合は、

new GridLayout( 0, 2 )
のように、行数に ゼロを与えておくのが普通です。

列数優先の例 MyProfileX.java

MyProfileX.java の 実行結果
実行結果

縦に3行並べたい場合は

new GridLayout( 3, 0 )
のように、列数は ゼロでかまいません。3個、6個、9個 を表示すると 下図のようになります。

3個 6個 9個

行数優先の例 MyProfileY9.java
上の結果のように、縦3行という指定が優先されます。 並べる方向は横方向である点に注意してください。

3の倍数でない個数を表示する場合は若干複雑です。 興味のある方は、Appendix F の java.awt.GridLayout を参照してください。

【表示を右詰めにしてみよう】

FlowLayout の場合は、

new FlowLayout( FlowLayout.RIGHT, 5, 5)
とするだけです。

プログラム MyAddressR1.java
Right Justify  縦長にすると   Right Justify

GridLayout や、BorderLayout では、内側のラベルが広がるため、ラベルに 貼る文字列を 右詰めにしなければなりません。 文字列を右詰めにする RLabel という クラスをつくってみましょう。

      class RLabel extends JLabel{
        public RLabel(String s){
          super(s);
          setHorizontalAlignment( SwingConstants.RIGHT );
        }
      }
      

プログラム MyAddressR2.java

Right Justify

JLabel のコンストラクタに水平方向の位置を指定する方法もあります。

プログラム MyAddressR3.java

この2つのプログラムを比較してどう感じますか?

では プログラム MyAddressR4.java はどうでしょう。 スッキリとしたプログラムというのは難しくこれら3つは一長一短です。 「プログラムを書くときにコピーアンドペーストを使ってはいけない」とよく言われます。 重複した記述を嫌う感覚を大切にしましょう。

【背景色をかえてみたい】【アイコンを貼り付けたい】

ラベルには、文字列に加えてイメージを貼り付けることができます。
ラベルについては、 Appendix A の java.swing.JLabel で もう少し詳しく解説しています。

背景色については、4.1節に進みましょう。


更新日:2006/04/06

Valid HTML 4.01 Transitional