コンポーネントを配置する方向を指定する
広告
BoxLayoutは縦方向又は横方向にコンポーネントを並べて配置していくレイアウトマネージャーです。ここではコンポーネントを配置していく方向の設定方法について確認します。
コンストラクタをもう一度見てみます。
public BoxLayout(Container target, int axis)
コンポーネントを指定された方向に配置するレイアウトマネージャーを生成し
ます。
パラメータ:
target - 配置する必要があるコンテナ
axis - 配置する必要があるコンテナコンポーネントの配置方向。
BoxLayout.X_AXIS、 BoxLayout.Y_AXIS。 BoxLayout.LINE_AXIS または
BoxLayout.PAGE_AXIS
例外:
AWTError - axis の値が無効な場合
2番目の引数にコンポーネントを配置する方向を表す数値を指定します。指定できる値は次の通りです。
| 値 | 配置する方向 |
|---|---|
| BoxLayout.X_AXIS | 左から右にコンポーネントを配置します |
| BoxLayout.Y_AXIS | 上から下にコンポーネントを配置します |
| BoxLayout.LINE_AXIS | テキスト行の方向にコンポーネントを配置します |
| BoxLayout.PAGE_AXIS | 複数のページにまたがって行が進んでいく方向にコンポーネントを配置します |
BoxLayout.LINE_AXIS及びBoxLayout.PAGE_AXISについてはコンテナの ComponentOrientation プロパティーに基づいて方向が決まりますが、日本語環境で利用している場合はBoxLayout.LINE_AXISの場合が「左から右」でBoxLayout.PAGE_AXISの場合が「上から下」に配置します。
実際の使い方は次のようになります。
JPanel p = new JPanel(); p.setLayout(new BoxLayout(p, BoxLayout.PAGE_AXIS));
サンプルプログラム
では簡単なサンプルを作成して試してみます。前頁では縦方向にコンポーネントを配置しましたので今度は横方向へ配置してみます。
import javax.swing.*;
import java.awt.Font;
import java.awt.BorderLayout;
public class BoxLayoutTest2 extends JFrame{
public static void main(String[] args){
BoxLayoutTest2 frame = new BoxLayoutTest2();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(10, 10, 300, 200);
frame.setTitle("タイトル");
frame.setVisible(true);
}
BoxLayoutTest2(){
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.LINE_AXIS));
p.add(button1);
p.add(button2);
p.add(button3);
getContentPane().add(p, BorderLayout.CENTER);
}
}
上記をコンパイルした後で実行すると次のように表示されます。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。