WisdomSoft - for your serial experiences.

6.9 セパレータ

コンポーネントの間を区切るには JSeparator クラスを用いてセパレータを挟みます。

6.9.1 コンポーネントを区切る

セパレータは、コンポーネントとコンポーネントの間を区切るためのコンポーネントです。主に、メニュー項目のグループを分けるための区切り線として利用されますが、通常のコンテナ上で複数のコンポーネントを区切るために使用することもできます。

セパレータを表示するには javax.swing.JSeparator クラスを用います。

javax.swing.JSeparator クラス
java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JSeparator
public class JSeparator extends JComponent implements SwingConstants, Accessible

セパレータは入力を受け付けることもなく、表示する内容もコンポーネントサイズに従った区切り線だけなので、JSeparator クラスはいたってシンプルです。セパレータが保有する唯一のプロパティは、区切り線が水平線か垂直線かを表す SwingConstants インタフェースの値だけです。JSeparator クラスのコンストラクタは次の 2 つだけです。

JSeparator クラスのコンストラクタ
public JSeparator()
public JSeparator(int orientation)

デフォルトのコンストラクタを呼び出した場合は水平のセパレータが生成されます。orientation には SwingConstants.HORIZONTAL または SwingConstants.VERTICAL を指定し、このセパレータが水平線を描画するのか、垂直線を描画するのかを指定します。

この値は setOrientation() メソッドで設定し getOrientation() メソッドから取得することもできます。

JSeparator クラス setOrientation() メソッド
public void setOrientation(int orientation)
JSeparator クラス setOrientation() メソッド
public int getOrientation()

セパレータはコンポーネントの内容を表示する適切なサイズを持たないため、レイアウトマネージャがコンポーネントが主張する適切なサイズを参照する場合は、JComponent クラスの setPreferredSize() で適切なサイズを指定しなければなりません。レイアウトマネージャの都合でコンポーネントのサイズを決定する場合は不要です。

コード1
import java.awt.*;
import javax.swing.*;

public class Test  {
	public static void main(String args[]) {
		JButton button1 = new JButton("Button1");
		JButton button2 = new JButton("Button2");
		JSeparator sep = new JSeparator(SwingConstants.VERTICAL);
		sep.setPreferredSize(new Dimension(5 , 50));

		JFrame win = new JFrame();
		win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		win.setBounds(10 , 10 , 400 , 300);

		win.getContentPane().setLayout(new FlowLayout());
		win.getContentPane().add(button1);
		win.getContentPane().add(sep);
		win.getContentPane().add(button2);

		win.show();
	}
}
実行結果
コード1 実行結果

コード1は、垂直のセパレータを生成して 2 つのボタンを区切ります。実行結果のボタンの間に表示されている垂直線がセパレータコンポーネントです。直線のバーに項目を列挙するコンテナなどで利用すると良いでしょう。項目を列挙するコンテナとは、一般的なアプリケーションにおけるメニューバー、ツールバー、ステータスバー、あるいは Mac OS X の Dock のような機能を提供するコンテナが考えられるでしょう。