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」メソッドを使用する。