目次へ

6.2. javax.swing.Box

「Box」は「BoxLayout」をレイアウト・マネージャーとするコンテナ・コンポーネントです。使用するにはまず、以下のどちらかの方法で「Box」のインスタンスを作成します。

Box box=new Box(BoxLayout.Y_AXIS);
Box box=Box.createVerticalBox();

これは縦方向にコンポーネントを詰めていく「Box」ですが、どちらの方法でインスタンスを作成しても同じ物ができます。

コンポーネントの追加は「JPanel」と同じようにします。

box.add(new JLabel("label"));

最後に「Box」のインスタンスを、フレームや他のコンテナに追加してやれば良いでしょう。

他に「Box」は、コンポーネント間の隙間を埋めるコンポーネントを作る、便利なメソッドを提供します。それらには「glue(接着剤)」「strut(柱)」「rigid area(固定領域)」の3種類あります。

「glue」はコンポーネントの表示に最低限必要な領域よりも、大きな領域が割りあてられたとき(領域が余った場合)に、それをどこに割りあてるか指定する時に使います。「JFrame」の「pack」メソッドを使用しているときは効果が出ませんが、ウィンドウサイズを大きくすると「glue」のあるところにあまったスペースが割りあてられるようになります。「glue」を追加するときは以下のようにします。

Component glue=Box.createGlue();
box.add(glue);

縦方向だけの「glue」の場合は「createVerticalGlue()」メソッドを、横方向だけの場合は「createHorizontalGlue()」メソッドを使用します。

「strut」および「rigid area」は共にスペースの大きさを指定するものですが、「strut」は片方向(縦または横のどちらか)のサイズを指定するのに対して、「rigid area」は両方向のサイズを指定します。「strut」「rigid area」の作成方法は以下の通りです。

Component vStrut=Box.createVerticalStrut(5);
Component hStrut=Box.createHorizontalStrut(10);

Component rigidArea=Box.createRigidArea(new Dimension(10,10));

それぞれコンテナに追加して使用します。「Box」以外に使用しても構いません。

(実習課題2)

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

  • ウィンドウ(JFrame)に直接配置されるコンポーネントは縦方向の「Box」1つ。
  • 「Box」の中にボタンを4つ配置する事。ボタンのテキストなどは任意。
  • 各ボタンの間には「glue」をはさむ事。また1番上のボタンの上、と1番下のボタンの下にはサイズ5の縦方向「strut」を入れる事。

ウィンドウのサイズを変化させて、「glue」および「strut」の効果を確認する事。

解答例はこちら

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp