パネルで使用するレイアウトマネージャーを設定する

パネルで使用されるデフォルトのレイアウトマネージャーは FlowLayout ですが他のレイアウトマネージャーを設定することもできます。ここではパネルで使用するレイアウトマネージャーを設定する方法について解説します。

(Last modified: )

レイアウトマネージャーを設定する

最初にコンストラクタで使用するレイアウトマネージャーを指定する方法です。次のコンストラクタを使用します。

public JPanel(LayoutManager layout)

指定されたレイアウト・マネージャで、新しいJPanelを作成します。

パラメータ:
layout - 使用するLayoutManager

引数にはレイアウトマネージャーを表す LayoutManager インターフェースを実装したクラスのオブジェクトを指定します。

実際の使い方は次のようになります。

JPanel panel = new JPanel(new BorderLayout());

この場合はレイアウトマネージャーとして BorderLayout を使用するパネルのオブジェクトが作成されます。

-- --

次に作成済みパネルのレイアウトマネージャーを設定する方法です。レイアウトマネージャーを設定するには JPanel クラスの親クラスである Container クラスで定義されている setLayout メソッドを使います。

public void setLayout(LayoutManager mgr)

このコンテナのレイアウト・マネージャを設定します。
このメソッドではレイアウトに関連する情報が変更されるため、コンポーネント階層が無効になります。

パラメータ:
mgr - 指定されたレイアウト・マネージャ

引数にはレイアウトマネージャーを表す LayoutManager インターフェースを実装したクラスのオブジェクトを指定します。

実際の使い方は次のようになります。

JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());

この場合はレイアウトマネージャーとして BorderLayout を使用するパネルのオブジェクトが作成されます。

サンプルコード

それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 Sample.java という名前で保存します。

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Dimension;

class Sample extends JFrame{
  public static void main(String args[]){
    Sample frame = new Sample("MyTitle");
    frame.setVisible(true);
  }

  Sample(String title){
    setTitle(title);
    setBounds(100, 100, 728, 400);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    setLayout(new FlowLayout());

    JPanel panel = new JPanel();
    panel.setPreferredSize(new Dimension(300, 200));

    panel.setLayout(new BorderLayout());

    JButton button1 = new JButton("NORTH");
    JButton button2 = new JButton("WEST");
    JButton button3 = new JButton("SOUTH");
    JButton button4 = new JButton("EAST");

    panel.add(button1, BorderLayout.NORTH);
    panel.add(button2, BorderLayout.WEST);
    panel.add(button3, BorderLayout.SOUTH);
    panel.add(button4, BorderLayout.EAST);

    add(panel);
  }
}

次のようにコンパイルを行います。

javac Sample.java

コンパイルが終わりましたら実行します。

java Sample

まずフレームのレイアウトマネジャーを FlowLayout に変更しました。次にパネルを作成し、パネルのレイアウトマネジャーを BorderLayout に変更したあとで、 4 つのボタンをそれぞれパネルに追加しています。最後にフレームにパネルを追加します。

レイアウトマネージャーを設定する(2)

-- --

パネルで使用するレイアウトマネージャーを設定する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。