BoxLayoutクラスの定義とコンストラクタ

広告

BoxLayoutクラスの定義を確認します。クラス図は次のようになっています。

java.lang.Object
  javax.swing.BoxLayout

public class BoxLayout
extends Object
implements LayoutManager2, Serializable

BoxLayoutクラスのコンストラクタ

BoxLayoutクラスをを利用するにはコンストラクタを使ってBoxLayoutクラスのオブジェクトを作成します。どのようなコンストラクタが用意されているか確認してみます。

コンストラクタ
BoxLayout(Container target, int axis)
コンポーネントを指定された方向に配置するレイアウトマネージャーを生成します。

コンストラクタは1つ用意されています。ではコンストラクタを確認してみます。

コンポーネントを指定された方向に配置するレイアウトマネージャーを生成し
ます。

パラメータ:
  target - 配置する必要があるコンテナ
  axis - 配置する必要があるコンテナコンポーネントの配置方向。
    BoxLayout.X_AXIS、 BoxLayout.Y_AXIS。 BoxLayout.LINE_AXIS または 
    BoxLayout.PAGE_AXIS 
例外: 
  AWTError - axis の値が無効な場合

1番目の引数にはレイアウトマネージャーを設定するコンテナのオブジェクトを指定します。そして2番目にはコンポーネントをどの方向に配置していくのかを指定します。2番目の引数については次のページで詳しく見ていきます。

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

JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.LINE_AXIS));

サンプルプログラム

では簡単なサンプルを作成して試してみます。

BoxLayoutTest1.java

import javax.swing.*;
import java.awt.Font;
import java.awt.BorderLayout;

public class BoxLayoutTest1 extends JFrame{

  public static void main(String[] args){
    BoxLayoutTest1 frame = new BoxLayoutTest1();

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(10, 10, 300, 200);
    frame.setTitle("タイトル");
    frame.setVisible(true);
  }

  BoxLayoutTest1(){
    JButton button1 = new JButton("Google");
    JButton button2 = new JButton("Yahoo!");
    button2.setFont(new Font("Arial", Font.PLAIN, 30));
    JButton button3 = new JButton("MSN");

    JPanel p = new JPanel();
    p.setLayout(new BoxLayout(p, BoxLayout.PAGE_AXIS));

    p.add(button1);
    p.add(button2);
    p.add(button3);

    getContentPane().add(p, BorderLayout.CENTER);
  }
}

上記をコンパイルした後で実行すると次のように表示されます。

BoxLayoutのサンプル

今回は縦方向にコンポーネントを配置するように設定してあります。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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