目次へ

4. レイアウト・マネージャー

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);
  }
}

上のサンプルプログラムを実行した結果が下図です。

サンプルプログラム実行の図1-レイアウトマネージャ-

「BorderLayout」は最も単純なレイアウトマネージャの1つです。他にも幾つかレイアウトマネージャがあります。この章では「java.awt.FlowLayout」「java.awt.CardLayout」について説明します。

(実習課題1)

以下のプログラムを作成しなさい。

  • BorderLayoutの5つの領域に5つのラベル(JLabel)を配置する事。
  • それぞれのラベルのサイズを指定する事。サイズは任意。
  • またそれぞれのフォントの色を黒色以外の色にする事。色は任意。
  • (ヒント)「setForeground」メソッドを使用する。

解答例はこちら

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp
  • シナジーマーケティング研究開発グループブログ