コンポーネント間の間隔を設定する

広告

デフォルトのコンストラクタを使用した場合、配置されるコンポーネントとコンポーネントの間には間隔はありません。ここではコンポーネント間の間隔を設定する方法を確認します。

間隔を設定するにはコンストラクタで指定する方法とメソッドで指定する方法があります。まずコンストラクタで指定する方法を確認します。

コンポーネント間に間隔を指定して、新しいボーダレイアウトを構築します。
水平方向の間隔は hgap によって指定され、垂直方向の間隔は vgap によって
指定されます。

パラメータ:
  hgap - 水平方向の間隔
  vgap - 垂直方向の間隔

1番目の引数に水平方向の間隔を、2番目の引数に垂直方向の間隔をint型の値で指定します。単位はピクセルです。

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

BorderLayout layout = new BorderLayout(10, 5);

メソッドを使って設定する

BorderLayoutクラスのオブジェクトを作成した後でメソッドを使ってコンポーネント間の間隔を設定することも可能です。水平方向の間隔を指定するにはBorderLayoutクラスで用意されている「setHgap」メソッドを使います。

コンポーネント間の水平方向の間隔を設定します。

パラメータ:
  hgap - コンポーネント間の水平方向の間隔

引数には水平方向のコンポーネント間の間隔をint型の値で指定します。単位はピクセルです。

次に垂直方向の間隔を指定するにはBorderLayoutクラスで用意されている「setVgap」メソッドを使います。

コンポーネント間の垂直方向の間隔を設定します。

パラメータ:
  vgap - コンポーネント間の垂直方向の間隔

引数には垂直方向のコンポーネント間の間隔をint型の値で指定します。単位はピクセルです。

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

BorderLayout layout = new BorderLayout();
layout.setHgap(10);
layout.setVgap(5);

サンプルプログラム

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

BorderLayoutTest4.java

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

public class BorderLayoutTest4 extends JFrame{

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

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

  BorderLayoutTest4(){
    JButton button1 = new JButton("CENTER");
    JButton button2 = new JButton("PAGE_START");
    JButton button3 = new JButton("PAGE_END");
    JButton button4 = new JButton("LINE_START");
    JButton button5 = new JButton("LINE_END");

    BorderLayout layout = new BorderLayout();
    layout.setVgap(2);
    layout.setHgap(10);
    setLayout(layout);

    getContentPane().add(button1, BorderLayout.CENTER);
    getContentPane().add(button2, BorderLayout.PAGE_START);
    getContentPane().add(button3, BorderLayout.PAGE_END);
    getContentPane().add(button4, BorderLayout.LINE_START);
    getContentPane().add(button5, BorderLayout.LINE_END);
  }
}

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

BorderLayoutでコンポーネント間の間隔を設定する

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)