4. レイアウト・マネージャー
ユーザインタフェース 4章 レイアウト・マネージャー
- 4.1. レイアウト・マネージャー
- 4.2. java.awt.FlowLayout
- 4.3. java.awt.CardLayout
4.1. レイアウト・マネージャー
Javaではコンポーネントを配置するとき、「レイアウト・マネージャー」がそれぞれの正確な位置を決める事になっています。ユーザはおおよその位置を示すだけで、細かい位置調整は全てレイアウト・マネージャーが面倒を見てくれることになっています。
これまでのサンプルで使用してきたレイアウトマネージャーは「java.awt.BorderLayout」でした。コンポーネントを追加するとき以下のようにしてきましたが、「getContentPane()」で返される「コンテナ」のデフォルトのレイアウトマネージャーが「BorderLayout」だったわけです。「コンテナ」とは他のコンポーネントを入れることのできるコンポーネントを意味しますが、後の章で説明する事にします。
getContentPane().add(label,BorderLayout);
ではBorderLayoutがどのようなレイアウトマネージャーか見てみることにしましょう。
import javax.swing.*;
import java.awt.*;
public class BorderLayoutFrame extends JFrame{
public BorderLayoutFrame(){
super("Border Layout");
setDefaultCloseOperation(EXIT_ON_CLOSE);
JButton north=new JButton("north");
north.setBackground(Color.blue);
getContentPane().add(north,BorderLayout.NORTH);
JButton west=new JButton("west");
west.setBackground(Color.yellow);
getContentPane().add(west,BorderLayout.WEST);
JButton center=new JButton("center");
center.setBackground(Color.gray);
getContentPane().add(center,BorderLayout.CENTER);
JButton east=new JButton("east");
east.setBackground(Color.red);
getContentPane().add(east,BorderLayout.EAST);
JButton south=new JButton("south");
south.setBackground(Color.green);
getContentPane().add(south,BorderLayout.SOUTH);
pack();
}
public static void main(String args[]){
new BorderLayoutFrame().setVisible(true);
}
}
上のサンプルプログラムを実行した結果が下図です。

「BorderLayout」は最も単純なレイアウトマネージャの1つです。他にも幾つかレイアウトマネージャがあります。この章では「java.awt.FlowLayout」「java.awt.CardLayout」について説明します。
(実習課題1)
以下のプログラムを作成しなさい。
- BorderLayoutの5つの領域に5つのラベル(JLabel)を配置する事。
- それぞれのラベルのサイズを指定する事。サイズは任意。
- またそれぞれのフォントの色を黒色以外の色にする事。色は任意。
- (ヒント)「setForeground」メソッドを使用する。

